日期:2014-05-19  浏览次数:20574 次

struts2 把form表单中的数据封装成对象传到action
比如说某网站的会员注册页面,里面放了一个表单,表单中是会员注册的相关信息,如:用户名,密码,性别等等很多属性,要一个一个的传很麻烦,能不能把表单的信息封装成一个对象(VIP)传到action中?如果能,该怎么做?请各位大侠指点一二...
请注意:(1)用的是struts2,(2)是表单传值到action,并非是action传值到表单.(3)已经写好了VIP的model.

------解决方案--------------------
你在action里面定义一个对象 比如User user;
页面上就通过user.name,user.password赋值就好了
------解决方案--------------------
当然可以啦
你在acton中定义 private User user;,public 的get,set、

class User ,private userId,public 的get,set、
然后在jsp页面
<s:text name="user. userId"/>
------解决方案--------------------
对于表单上传复杂对象利用 Struts2 有两种方式 : 
1. 使用 OGNL 表达式完成 
2. 使用 Struts2 的 Type Conversion 来完成;

对于使用 OGNL 表达式来完成 ,就和 warison2008 说的一样,这样是最简单的;

对于使用 Type Conversion 来完成, 就需要你自己写一个转换器了, 不过并不建议这样,虽然这样能够坚决表单数据传递到 Action 中的问题,但是对于表单的回显就成了一个问题了....
在自定义转换器中获取的 name 属性的参数值是一个数组,而在转换回去的时候(从 String-->Object 一个方法, Object ---> String 一个方法),返回的是一个 String ... 没办法回显到表单的各个字段(我没有想出来如何操作- -||)