`
aaagu1234
  • 浏览: 144815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2提交数组

阅读更多
webwork表单提交中有一个很有用的技巧,在提交成组的类似person[0].name,person[1].name的表单中,可以利用conversion使xwork自动装配对象属性到action中:
form 代码:
Html代码
<form action="savePerson.action">  
<input type="text" name="persons[0].name" />  
<input type="text" name="persons[0].id" />  
<input type="text" name="persons[1].name" />  
<input type="text" name="persons[1].id" />  
</form>  

<form action="savePerson.action">
<input type="text" name="persons[0].name" />
<input type="text" name="persons[0].id" />
<input type="text" name="persons[1].name" />
<input type="text" name="persons[1].id" />
</form>

person类:
Java代码
public Class Person{   
public String name;   
public Long id;   
getXXX...   
setXXX...   
}  

public Class Person{
public String name;
public Long id;
getXXX...
setXXX...
}

然后在action类同层次创建conversion文件,ClassName-conversion.properties,这里用SavePersonAction-conversion.properties:
Java代码
Element_persons=Person   
CreateIfNull_persons=true  

Element_persons=Person
CreateIfNull_persons=true

这里面配置文件的含义就是页面中persons名字样式的数组表单提交会被xwork转换成一个个对象放入list中,如果list是空的话xwork会自己创建一个.
action的代码如下:
Java代码
public Class SavePersonAction extends ActionSupport{   
   List persons=new ArrayList();   
}  

public Class SavePersonAction extends ActionSupport{
  List persons=new ArrayList();
}


这样,form中提交的数组形式的属性,会由xwork转换成person对象并放入list中,供action使用.

但这样的验证表单的数据就会与传统xwork的验证不同.传统xml的validation类似如下样子:
Xml代码
<validators>  
  <field name="name">  
      <field-validator type="required">  
          <message>You must enter a value for bar.</message>  
      </field-validator>  
  </field>  
<validators>  

<validators>
  <field name="name">
      <field-validator type="required">
          <message>You must enter a value for bar.</message>
      </field-validator>
  </field>
<validators>

这里的field name必须精确匹配表单中提交的名字,由于我们表单中的name是name
形式的,并不能确定提交哪个person[?].name , 就要用到xwork的一个测试的validation,叫collection,配置方法如下,在SavePersonAction-validation.xml中加入:
Xml代码
<validators>  
   <field name="persons">  
       <field-validator type="collection">  
        <param name="property">persons.name</param>  
        <param name="validatorRef">required</param>  
         <param name="validatorParams['defaultMessage']">Must be String</param>  
         <message> ... </message>  
       </field-validator>  
   </field>  
</validators>  
<validators>  

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    struts2接收数组参数demo

    亲自做了一个struts2后台接收前台jsp页面传来的数组参数demo,因为参考网上的资源如用webwork表单提交等集成到项目有问题,所以做了一个单独的demo,经测试,用表单提交类似users[0].name,users[1].name的数组参数是...

    Struts2下的jQueryAjax请求(Json)

    struts2下通过jquery的ajax从后台传json对象并展示在web页面上的一个小例子,所需的jar包请自己下载否则无法运行,所需的包包括struts的必须包,json的支持包和struts对json的支持包

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    struts2 标签库 帮助文档

    Struts 2 标签库(文档手册) Tags-API-CLSW-JSP &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-...

    struts2 jquery json

    本人鄙视垃圾资源,也是工作需要,经过仔细研究后做了这个小例子。希望对大家有用。 应用struts2 jquery json简单小例子。可编译,可执行,可看效果。注释很详细。...2,ajax提交,操作字符串,对象,数组。

    inputbox 文本框数组

    用struts1.2,jstl1.1实现jsp的动态文本框数组,没用ecodingFilter所以不支持中文,早上刚写出来的,新鲜热辣~ 直接部署到tomcat就可以用了 至于如何结合数据库实现动态就不写出来了,因为已经能从form里面拿到数据了,...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    Struts2 批量接收页面 checkbox 或对象数据 源码(有图有真相)

    前台checkbox提交的数据,Struts2在后台自动封装成数组/List。 but 前台向后台批量提交对象数据,struts2就显得力不从心了,本案例着重介绍,批量向后台提交对象数据,源码,有图有真相哦! 欢迎交流、吐槽、指导...

    Struts2+API+标签全解+网页说明

    iteratot标签:对集合属性迭代(属性类型:List、Map、数组)。 append标签:将多个集合对象拼接在一起,组成一个新的集合。将多个集合使用一个标签完成迭代。 generatot标签:将指定的字符串按照规定的分隔符分解...

    Struts开发技术

    Struts开发技术:分页,迭代数组,struts标签, 动态提交form,解决重复提交,

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    “桂林高新杯”软件设计大赛.doc

    " " "2、JSP、JavaBean、Servlet、JDBC、Struts、Hibernate、Spring" " "、EJB、 Web Service、JMS、JTA、JTS技术开发; " " "3、系统集成、优化。 " "数据库应用 "考核要点 "分值 "20 " "数据库应用 "1、数据库...

    java面试题

    Struts2只是起到一个数据接收和转接的功能,就是Controller控制器,而传来数据的页面叫view显示层,Struts2将数据提交给进行处理的类叫Model模型层,专门进行数据处理和数据库的连接。 heap和stack有什么区别? 答:...

    JAVA编程百例(照着例子更容易!)

    实例2 java流程控制 实例20 工具栏 实例21 内部窗体 实例22 分割一个面板 实例23 滑动杆 实例24 颜色过滤器 实例25 表格 实例26 基本图形绘制 实例27 绘制波图形 实例28 图片的处理 实例29 绘制指针时钟 实例3 数组...

Global site tag (gtag.js) - Google Analytics