在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表达式针对的是数组的元素,不是数组本身了,所以必须要对数组进行初始化的。
这是我在学习过程中的一点总结,希望对初学者有所帮助!
分享到:
相关推荐
在实际开发中,我们可以根据需要为不同的数组类型定义各种转换方法,如`ToIntArray()`, `ToStringArray()`, `ToDateArray()`等,从而减少重复代码,提高代码的可读性和维护性。 此外,扩展方法还可以与其他 LINQ ...
C#实现结构体与数组间的转换,包括:同时支持大小端;支持自定义数据类型;支持数组类型结构体成员,带单元测试
首先,我们要理解这两种数组类型的区别。整形数组存储整数值,如int,通常用于计算和逻辑操作。而字符数组,即无符号字符数组(uchar array),通常用来表示文本数据或者二进制数据,如图像或音频流。在C/C++中,...
1. 数据类型转换:如将`int[]`转换为`string[]`,这在显示数据时非常常见,因为 Winform 控件往往需要字符串作为显示内容。 2. 集合转换:如将数组转换为`List<T>`或其他集合类型,这样可以方便地利用集合提供的...
本文通过对C语言中数组访问机制及强制类型转换的深入分析,提供了一个实际的编程示例来解释如何将一维数组的指针转换为二维数组的指针,并成功传递给期望接收二维数组的函数。此外,还探讨了如何处理未知大小的二维...
总之,`Array.ConvertAll`是C#中便捷的数组类型转换工具,它通过Converter委托实现了元素级别的类型转换。这种方法简化了代码,提高了可读性,同时确保了转换过程的安全性。在实际编程中,可以根据需要自定义...
在编程领域,字符串、整型数据和字符型数组是三种基本的数据类型,它们在不同的场景下各有用武之地。在实际开发中,我们经常需要在这三者之间进行转换,以便处理不同类型的数据。以下是对这些转换的详细说明: 一、...
字符类型在 Java 中是 16 位的 Unicode 字符,转换成 byte 数组需要将字符类型转换成 int 类型,然后将 int 类型转换成 byte 数组。例如: ```java public static byte[] charToByteArr(char ch) { byte[] b = new...
在编程中,数据类型之间的转换是非常常见的操作,尤其是在处理二进制数据和文本数据时。在Java或类似的编程语言中,我们经常会遇到需要将字符串(String)与字节数组(Byte[])以及十六进制表示的字符串(Hex)进行...
例如,在将short类型转换为byte数组时,我们需要创建一个长度为2的byte数组,而在将int类型转换为byte数组时,我们需要创建一个长度为4的byte数组。 除了将基本类型转换为byte数组外,我们还可以将byte数组转换为...
char short int long float double 转换成byte数组
OpenCV实现灰度图像到二维数组,数组到图像的相互转换存取
C#提供了多种方法来实现这种类型转换,其中一种常见的方式是使用`Convert.ToString()`函数。 #### 示例代码解析 首先,我们来看一下提供的代码示例: ```csharp int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; string[]...
在IT领域,将数组转换为JSON对象是一项常见且重要的技能,尤其在前后端数据交互、存储和传输数据时。从给定的文件标题和描述中,我们可以提炼出以下几个关键知识点: ### 1. JSON(JavaScript Object Notation)...
using System.IO; …… float f1 = 1.1F MemoryStream s = new MemoryStream(); BinaryWriter w=new BinaryWriter(s );
数组通常包含相同类型的数据元素,例如整数、字符或浮点数。在某些情况下,我们可能需要将数组保存到磁盘上以便后续处理或传输。二进制文件(如.bin文件)是一种常见的存储方式,因为它能高效地占用磁盘空间,并且...
Java字节数组与常见类型转换工具,包括byte[] 与int long double float string boolean 等类型的相互转换。
这里的`BytesToStruct`方法接受一个字节数组和结构体的`Type`对象,首先检查字节数组的长度是否足够,然后分配内存,将字节数组的内容拷贝到内存,接着使用`Marshal.PtrToStructure`将内存中的数据转换为指定类型的...
- `byteArrayIn`:输入参数,类型为`byte[]`,表示要转换的字节数组。 - `MemoryStream ms`:创建了一个`MemoryStream`对象,并通过构造函数初始化该流,使得流中包含了`byteArrayIn`的所有内容。 - `Image.From...
这些基本类型可以相互转换,例如将 short 类型转换成 byte 数组、int 类型转换成 byte 数组等。 在 Java 中,基本类型可以使用 bitwise 运算符来实现与 byte 数组的转换。例如,将 short 类型转换成 byte 数组可以...