在我们做表单数据提交的时候会遇到一个list列表提交的问题,用土鳖的一点的方法是将列表元素做一个下标,利用request.getParameterValues()方法获取某一组name相同元素的数组,然后一个个对应,但是无法使用对象的方式将一个list中的数据包装成对象的数组提交过来,显得代码比较繁杂,不够优雅。struts2自带有类型转换器功能解决这个问题,具体的方法是在action这个目录中建立一个同名action-conversion.properties的文件,在文件中定义具体的需要传递的list名字,例如:
pojo:
public class User{
private String id;
private String name;
....
get、set省略
}
action类:
public class UserAction{
private List<User> userList;//表单提交使用的user的数组对象
public String execute(){
service.save(userList);
}
get、set省略
}
properties文件:(与action同目录,文件名UserAction-conversion.properties)
Element_userList=User
CreateIfNull_userList=true
CreatelfNull里是允许为空
在jsp文件中如下使用:
<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>
如果碰到相同的情况可以试试,简单实用。
分享到:
相关推荐
struts提交list数据,批量保存到数据库。
防止重复提交的总要解决方案 相信对struts的学者有帮助 大家看看
自己整理的jquery+json+struts2异步传输的例子,包括异步提交form,异步传输json对象。
这里是Struts2 中放置表单重复提交的例子。
struts2令牌解决页面重复提交问题,资源中包含一个实例代码
2) 二是,forward跳转引起的重复提交。当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会...
STRUTS中用道德 多行提交,这是个很好的范例和总结
struts2中对表单重复提交的处理方法;包括处理两种典型的表单重复提交的思路和方法
但是这样做,不好之处就是我们可以通过人为的将开发者的验证js注掉,这样就导致验证失败,对后台安全性是一个很大的威胁,在采用struts2进行...本附件为【Struts2】★☆之struts2对Action提交方法进行验证,下载源码!
利用Struts 2标签创建ex3.jsp页面,此页面提交给tag.action,在structs.xml中配置这个action的转发视图为result.jsp在result.jsp页面中显示ex3.jsp页面控件的值。(源代码和实验报告)
Struts2文件上传下载和表单重复提交问题
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
Struts解决重复提交步骤也可以说是struts的令牌机制很有用的啊
Struts2 防重复提交Demo 利用Struts2自带的s:token写的防数据重复提交策略.
该资源是使用struts2框架进行操作,返回json格式数据,前台通过ajax提交内容。
整合了struts2 jquery的formValidator表单验证的页面代码, 包含验证用户是否存在,提交表单等
由于struts2标签的性能不好,项目组决定不使用,但是如果用struts2自带的拦截器防止重复提交又必须struts标签,所以只好自定拦器实现
Jquery与struts2,利用Jquery脚本,通过ajax方式向struts后台提交数据.
基于javaWeb MVC模式,借助struts2框架编写,实现用户简单的注册与登录功能。...4.struts2,可以直接对表单提交的数据封装成对象,简洁!当然需要在web.xml中配置核心filter—strutsPrepareAndExecuteFilter.