用struts2标签获取bean里面的属性的时候,会调用get方法

问题描述:现有一个page类,包含属性resultPage

public class Page<T>
{
    private List<T> resultPage;

    public List<T> getResultPage()
    {
          //do something....       
    }
}


当我在后台生成了一个Page对象,并且由于需要回调用一次getResultPage()方法。然后将这个Page对象放到request的属性里面。

好了,在前台用struts标签获取这个Page对象。

<s:property value="#request.page.resultPage"></s:property>

此时会出错,即是会将getResultPage方法里面的do something 再执行一次。


原因:struts2框架本身就是基于反射。此时struts标签获取属性的时候就是通过反射区调用了bean的get方法。所以会导致do something再执行一次。

以后在bean的get方法中只简单的返回值,而不对值做任何修改



2.可变参数

定义一个可变参数的方法

public void do(String... args)
{
       if(args == null)
              //do something
       else
              //do someghitng....
}

此时,如果我们需要向do方法传递参数的时候,不宜用do(null) ,因为它还有可能匹配其他的方法(如do(Integer... args)

一种好的方法是

String[]  args = null;

do( args )

采用此种方式实际上附带了参数的类型,而第一种方式没有附带参数的类型






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值