在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*函数最好删掉,不然会影响性能及可能出现一些莫名的错误

posted @ 2013-11-21 17:32  玻壳  阅读(322)  评论(0编辑  收藏  举报