`
aaagu1234
  • 浏览: 149232 次
  • 性别: 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的数组参数是...

    AJAX和struts2传递JSON数组

    在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...

    struts1.2 from表单提交包含list的对象

    在Struts1.2中处理表单提交,特别是当表单数据包含列表对象时,需要理解一些核心概念和技术。这篇博客文章可能详细探讨了如何在Struts1.2中处理这类情况。 首先,让我们来了解Struts1.2中的表单提交流程。当用户在...

    struts2标签使用例子

    Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建企业级Java Web应用程序。在Struts2框架中,标签库是其一大特色,它提供了丰富的自定义标签,使得开发者能够更加便捷地创建动态页面。这些标签极大地简化...

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

    Struts2 Value Stack Contents 中取值、多个集合数组

    在使用Struts2框架进行Web应用开发时,经常会遇到需要从Value Stack(值栈)中获取数据的场景,尤其是在表单验证中。Struts2的Value Stack是一种可以方便地在Action和JSP页面之间传递数据的机制。本文将详细介绍如何...

    struts2学习笔记黑马程序员

    2. **数组**:方括号`[]`内的一系列值,值之间用逗号分隔。 - 示例:`["apple", "banana", "cherry"]` **Java中的JSON工具介绍** 1. **Fastjson** - **简单使用**: - 导入Fastjson的JAR包。 - 对象序列化:`...

    struts2标签库

    但是Struts2的实现更为灵活,可以方便地将值追加到不同的数据结构中,例如列表或数组。 - **`&lt;s:autocompleter&gt;`**:这是一个自动完成建议框标签,与Struts1没有直接对应的标签。该标签通过AJAX技术实现了输入框的...

    struts2 接收参数

    Struts2是一个流行的Java web框架,它为开发MVC(模型-视图-控制器)架构的应用程序提供了强大的支持。在Struts2中,接收参数是常见的操作,这涉及到用户通过HTTP请求传递的数据如何被框架捕获和处理。这篇博客文章...

    ActionForm属性中存在对象数组如何处理

    在Struts框架中,ActionForm类是用于封装请求参数并传递到Action类进行业务逻辑处理的关键组件。...通过这种方式,Struts框架能够处理ActionForm中包含对象数组的场景,允许用户在一次表单提交中处理多个对象实例。

    struts2简单实例(类型转换方法对比)

    例如,用户可能提交一个包含多个值的数组或列表,我们需要将这些值转换为特定的类型。这时,我们可以创建一个转换器处理这种类型的集合,然后在配置文件中声明。 在`struts2test2`、`struts2test4`、`struts2test3`...

    struts2标签大全

    10. **s:iterator标签**:用于迭代集合,常用于遍历列表、数组或Map,可以在循环内部嵌套其他Struts2标签。 11. **s:property标签**:用于显示Action类属性的值,可以格式化输出,支持EL表达式。 12. **s:debug...

    Struts2下的jQueryAjax请求(Json)

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

    struts2的标签应用

    Struts2是一个强大的Java web框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。在Struts2中,标签库是其核心特性之一,它们为开发者提供了便利的方式来构建动态用户界面,无需深入HTML和JavaScript的底层...

    Struts2批量上传

    当客户端提交包含文件字段的表单时,Struts2会将这些文件字段封装为`File`对象数组,并提供相应的属性来访问文件的元数据(如文件名、类型等)。这种设计允许开发者在Action类中直接处理多个上传文件,而无需额外...

    struts2标签解析

    Struts2标签库是Java Web开发中的一个强大工具,它为开发者提供了丰富的UI组件和控制逻辑,极大地简化了视图层的代码编写。Struts2框架的标签库基于OGNL(Object-Graph Navigation Language)表达式语言,使得在JSP...

    struts2标签库实验报告.docx

    ### Struts2标签库知识点详解 #### 一、实验背景及目标 本实验报告主要针对Struts2框架中的标签库进行深入研究与实践。通过实验,学员能够掌握Struts2中几个常用标签(如`&lt;s:radio&gt;`、`&lt;s:select&gt;`、`&lt;s:token&gt;`)...

    Struts2标签与开发手册

    Struts2是一个强大的Java web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。Struts2的核心是Action类,而标签库则是其提供给开发者进行视图层构建的重要工具,提高了代码的可读性和可维护性。本...

    struts2-tags-API.rar

    10. **AJAX支持标签**:Struts2还提供了一些与AJAX相关的标签,如`&lt;s:a&gt;`(异步链接)、`&lt;s:head&gt;`(引入jQuery库)和`&lt;s:submit&gt;`(异步提交),使得页面更新更加动态和高效。 通过深入理解和熟练运用Struts2 Tags...

Global site tag (gtag.js) - Google Analytics