`
- 浏览:
148807 次
- 性别:
- 来自:
北京
-
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>
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
亲自做了一个struts2后台接收前台jsp页面传来的数组参数demo,因为参考网上的资源如用webwork表单提交等集成到项目有问题,所以做了一个单独的demo,经测试,用表单提交类似users[0].name,users[1].name的数组参数是...
在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...
在Struts1.2中处理表单提交,特别是当表单数据包含列表对象时,需要理解一些核心概念和技术。这篇博客文章可能详细探讨了如何在Struts1.2中处理这类情况。 首先,让我们来了解Struts1.2中的表单提交流程。当用户在...
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建企业级Java Web应用程序。在Struts2框架中,标签库是其一大特色,它提供了丰富的自定义标签,使得开发者能够更加便捷地创建动态页面。这些标签极大地简化...
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
在使用Struts2框架进行Web应用开发时,经常会遇到需要从Value Stack(值栈)中获取数据的场景,尤其是在表单验证中。Struts2的Value Stack是一种可以方便地在Action和JSP页面之间传递数据的机制。本文将详细介绍如何...
2. **数组**:方括号`[]`内的一系列值,值之间用逗号分隔。 - 示例:`["apple", "banana", "cherry"]` **Java中的JSON工具介绍** 1. **Fastjson** - **简单使用**: - 导入Fastjson的JAR包。 - 对象序列化:`...
但是Struts2的实现更为灵活,可以方便地将值追加到不同的数据结构中,例如列表或数组。 - **`<s:autocompleter>`**:这是一个自动完成建议框标签,与Struts1没有直接对应的标签。该标签通过AJAX技术实现了输入框的...
Struts2是一个流行的Java web框架,它为开发MVC(模型-视图-控制器)架构的应用程序提供了强大的支持。在Struts2中,接收参数是常见的操作,这涉及到用户通过HTTP请求传递的数据如何被框架捕获和处理。这篇博客文章...
在Struts框架中,ActionForm类是用于封装请求参数并传递到Action类进行业务逻辑处理的关键组件。...通过这种方式,Struts框架能够处理ActionForm中包含对象数组的场景,允许用户在一次表单提交中处理多个对象实例。
例如,用户可能提交一个包含多个值的数组或列表,我们需要将这些值转换为特定的类型。这时,我们可以创建一个转换器处理这种类型的集合,然后在配置文件中声明。 在`struts2test2`、`struts2test4`、`struts2test3`...
10. **s:iterator标签**:用于迭代集合,常用于遍历列表、数组或Map,可以在循环内部嵌套其他Struts2标签。 11. **s:property标签**:用于显示Action类属性的值,可以格式化输出,支持EL表达式。 12. **s:debug...
struts2下通过jquery的ajax从后台传json对象并展示在web页面上的一个小例子,所需的jar包请自己下载否则无法运行,所需的包包括struts的必须包,json的支持包和struts对json的支持包
Struts2是一个强大的Java web框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。在Struts2中,标签库是其核心特性之一,它们为开发者提供了便利的方式来构建动态用户界面,无需深入HTML和JavaScript的底层...
当客户端提交包含文件字段的表单时,Struts2会将这些文件字段封装为`File`对象数组,并提供相应的属性来访问文件的元数据(如文件名、类型等)。这种设计允许开发者在Action类中直接处理多个上传文件,而无需额外...
Struts2标签库是Java Web开发中的一个强大工具,它为开发者提供了丰富的UI组件和控制逻辑,极大地简化了视图层的代码编写。Struts2框架的标签库基于OGNL(Object-Graph Navigation Language)表达式语言,使得在JSP...
### Struts2标签库知识点详解 #### 一、实验背景及目标 本实验报告主要针对Struts2框架中的标签库进行深入研究与实践。通过实验,学员能够掌握Struts2中几个常用标签(如`<s:radio>`、`<s:select>`、`<s:token>`)...
Struts2是一个强大的Java web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。Struts2的核心是Action类,而标签库则是其提供给开发者进行视图层构建的重要工具,提高了代码的可读性和可维护性。本...
10. **AJAX支持标签**:Struts2还提供了一些与AJAX相关的标签,如`<s:a>`(异步链接)、`<s:head>`(引入jQuery库)和`<s:submit>`(异步提交),使得页面更新更加动态和高效。 通过深入理解和熟练运用Struts2 Tags...