amo_njupt 2010-03-10 16:23
浏览 283
已采纳

怎样将jsp页面中的提交参数读入到Action中?

(1)setorder.jsp页面

填写顾客信息

姓名:
地址:

(2) Struts2中配置的对应配置如下

    <action name="orderok" class="edu.njupt.action.OrderBookAction">
        <result name="success">/shopjsp/orderok.jsp</result>
        <result name="input">/shopjsp/setorder.jsp</result> 
         <interceptor-ref name="adlogininterceptor"/>       
    </action>

Adlogininterceptor是自定义的一个拦截器,用于区分登录用户与非登录用户。
(3)OrderBookAction类的excute()成员方法代码如下:
public String execute() throws Exception {
//不用判断用户是否登录,由Struts拦截器来判断
//生成订单,确认用户信息,添加至数据库-订单表
Order order = new Order();//Order是个订单类
Map request = (Map)ActionContext.getContext().get("request");
realname = (String)request.get("realname");
System.out.println(realname);
address = (String)request.get("address");
System.out.println(address);
order.setRealname(realname);
order.setAddress(address);

//添加到数据库
bookcontrol.CreateOrder(order);
return "success";
}
(4)问题:

后台会报错,realname,address都显示为null,在OrderBookAction类中已定义了realname,address变量,并提供了get/set方法,也传递了参数orderok.action? realname=%B0%A2%C4%AC&address=%D0%C2%C4%A3%B7%B6%C2%ED%C2%B766%BA%C5,为什么在excute()方法中读取不到页面提交的数据呢?怎样解决?谢谢!

  • 写回答

5条回答

  • xwz_adolf 2010-03-10 17:43
    关注

    (1)将method设为“get”以及excute()方法中添加那些打印参数语句是为了调试用的。在实际的setorder.jsp中提交的不只是realname,address两个参数,还提交了另外一些参数,有些参数并不是Order类的属性,请问这是否影响结果?是否还能在setorder.jsp中用order.address?
    答:
    1.Order类的属性直接使用我说方法
    2.不是Order类的属性,是其他PO类的属性,只要在action中有该PO的set,get方法即可将值设置到该po的属性中
    3.是其他值
    a.作为action的变量并 设置get,set方法;
    b。不作为action的变量。使用request.getParameter("");获得该值。

    (2)在数据库中order表的属性为name,address,并非setorder.jsp对应的realname,address,并且在Order.hbm.xml中配置的也是name,address,请问这是否也是可能不能得到正确结果的原因?

    答: 上面的第3中情况。
    是可以获得正确的结果的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题