在struts2的Action中慎起get打头的函数
struts2 Action里面的getter方法会在Action结束后被自动调用,例如有此情况:
<package extends="struts-default">
<action name="MyAction">
<action name="AnotherAction" method="getSomething">
...
在Action中
public String execute(){
System.out.println("execute");
return SUCCESS;
}
public String getA() {
System.out.println("getA");
return SUCCESS;
}
public String geta() {
System.out.println("geta");
return SUCCESS;
}
public String getaa() {
System.out.println("getaa");
return SUCCESS;
}
public String getaA() {
System.out.println("getaA");
return SUCCESS;
}
public String getB() {
System.out.println("getB");
return SUCCESS;
}
public String gotA() {
System.out.println("gotA");
return SUCCESS;
}
当调用MyAction的时候,输出结果为:
execute
geta
getaA
getaa
getB
也就是说,即使你没有调用AnotherAction,getSomething仍然会执行。
更多移步原文:http://lyfei022.blog.163.com/blog/static/8255831200972765349698/
mysum:
曾经在Action里写过一个以get开头的处理业务的函数,此函数还需要从Action里读入一个数据,导致有时执行此Action时
会抛空指针异常。所以在Action里除了getter外其他函数不要以get开头(同样,也不要以set开头);除此外,除了必要的getter/setter外其余get*/set*函数最好删掉,不然会影响性能及可能出现一些莫名的错误