在我们做表单数据提交的时候会遇到一个list列表提交的问题,用土鳖的一点的方法是将列表元素做一个下标,利用request.getParameterValues()方法获取某一组name相同元素的数组,然后一个个对应,但是无法使用对象的方式将一个list中的数据包装成对象的数组提交过来,显得代码比较繁杂,不够优雅。struts2自带有类型转换器功能解决这个问题,具体的方法是在action这个目录中建立一个同名action-conversion.properties的文件,在文件中定义具体的需要传递的list名字,例如:
action类:
[code]
public class UserAction{
private List<User> userList;//表单提交使用的user的数组对象
public String execute(){
service.save(userList);
}
get、set省略
}
[/code]
properties文件:(与action同目录,文件名UserAction-conversion.properties)
[code]
Element_userList=User
CreateIfNull_userList=true
[/code]
CreatelfNull里是允许为空
在jsp文件中如下使用:
[code]
<s:iterator value="list" status="stat">
用户编码:<input type="hidden" name="userList[<s:property value='#stat.index'>].id" />
用户名称:<input type="hidden" name="userList[<s:property value='#stat.index'>].name" value="" />
</s:iterator>
[/code]
如果碰到相同的情况可以试试,简单实用。
pojo:
public class User{
private String id;
private String name;
....
get、set省略
}
action类:
[code]
public class UserAction{
private List<User> userList;//表单提交使用的user的数组对象
public String execute(){
service.save(userList);
}
get、set省略
}
[/code]
properties文件:(与action同目录,文件名UserAction-conversion.properties)
[code]
Element_userList=User
CreateIfNull_userList=true
[/code]
CreatelfNull里是允许为空
在jsp文件中如下使用:
[code]
<s:iterator value="list" status="stat">
用户编码:<input type="hidden" name="userList[<s:property value='#stat.index'>].id" />
用户名称:<input type="hidden" name="userList[<s:property value='#stat.index'>].name" value="" />
</s:iterator>
[/code]
如果碰到相同的情况可以试试,简单实用。