问题描述:现有一个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 )
采用此种方式实际上附带了参数的类型,而第一种方式没有附带参数的类型