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条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?