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

来源:互联网 发布:淘宝男装羽绒服 编辑:程序博客网 时间:2024/05/16 01:29

问题描述:现有一个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 )

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






0 0
原创粉丝点击