数组类型的转换

在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表达式针对的是数组的元素,不是数组本身了,所以必须要对数组进行初始化的。
这是我在学习过程中的一点总结,希望对初学者有所帮助!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值