在Struts2框架中,将数据转换成Java的数组,主要有两种方式:
第一种方式:
<s:form action="MyAction1">
<s:textfield name="ages" label="Ages"/>
<s:textfield name="ages" label="Ages"/>
<s:textfield name="ages" label="Ages"/>
<s:submit/>
</s:form>
第二种方式:
<s:form action="MyAction2">
<s:textfield name="ages[0]" label="Ages"/>
<s:textfield name="ages[1]" label="Ages"/>
<s:textfield name="ages[2]" label="Ages"/>
<s:submit/>
</s:form>
以上这两种方式都是可以的,但是他们有什么区别呢?让我们看看它们Action的实现就知道了。
MyAction1实现:
pulbic class MyAction1 {
private Double[] ages;
public void setAges(Double[] ages) {
this.ages = ages;
}
public Double[] getAges() {
return ages;
}
}
MyAction2的实现:
pulbic class MyAction2 {
private Double[] ages = new Double[]{};
public void setAges(Double[] ages) {
this.ages = ages;
}
public Double[] getAges() {
return ages;
}
}
大家从上面看到,区别就是,MyAction1的ages没有进行初始化,而MyAction2的ages进行了初始化了。那这是为什么呢?
这是因为ONGL表达式在第一种情况下针对的是数组对象本身,Struts2在处理过程中,暂时新建了一个数组对象,直接赋值给ages,所以ages不需要进行初始化。而在第二中方式中,ONGL表达式针对的是数组的元素,不是数组本身了,所以必须要对数组进行初始化的。
这是我在学习过程中的一点总结,希望对初学者有所帮助!
分享到:
相关推荐
C#实现结构体与数组间的转换,包括:同时支持大小端;支持自定义数据类型;支持数组类型结构体成员,带单元测试
采用扩展方法实现数组中数据类型转换(c#),转换方法可以转换很复杂的数据类型,在一定程序上提高开发效率.
字符串数组转换成string类型的
本文通过一个编程实例解析了c语言中数组访问机制及强制转换操作。
java基本类型与byte数组互相转换.pdf
C#各种数据类型转换,字符串 转换 char数组,char数组 转换 字符串,byte数组 转换 字符串,字符串 转换 byte数组 注意转换出来会使原来的bytearray长度变短,字符串 转换 byte数组 长度为传如的长度,将字符串编码为Base...
1.字符串(String)与Byte[] 的互相转换. 2.Hex(String形式)与Byte[] 的互相转换.
char short int long float double 转换成byte数组
OpenCV实现灰度图像到二维数组,数组到图像的相互转换存取
using System.IO; …… float f1 = 1.1F MemoryStream s = new MemoryStream(); BinaryWriter w=new BinaryWriter(s );
Java字节数组与常见类型转换工具,包括byte[] 与int long double float string boolean 等类型的相互转换。
LongInt与字节数组的转换带源码 Float与字节数组的转换带源码 Double与字节数组的转换带源码
java基本类型与byte数组互相转换
java基本类型与byte数组互相转换.rar
.java文件,对java基础的数组部分的进制类型转换部分的说明。
java基本类型与byte数组互相转换.doc
java基本类型与byte数组互相转换文.pdf
LabVIEW程序,功能:将4字节的unsigned char输入组合成1个32-bit int值,若输入字节数不等于4则报错。
flex.3的语法讲座,swf格式,共6课。