尝试从JSP访问Action方法时出现struts2 NoSuchMethodException

时间:2013-04-02 20:09:18

标签: java jsp url struts2

Struts2新手在这里。我有一个JSP文件,其中有一个锚链接到名为“authenticate”的Action。当我点击锚点时,收到一条错误消息:java.lang.NoSuchMethodException: mypackage.DisplayStuff.authenticate() java.lang.Class.getMethod(Unknown Source)

这是我的struts.xml

<package name="default" extends="struts-default" namespace="/">
    <action name="display" method="authenticate"
        class="mypackage.DisplayStuff">
        <result name="error">Boo.jsp</result>
        <result name="success">Yay.jsp</result>

    </action>
</package>

这是我的行动档案:

package mypackage;

public class DisplayStuff {           
    public String authenticate() {
        return "success";
    }

}

最后,在我的JSP中,我有这个锚:

<a href="<s:url action="display"/>">click here</a>

有趣的是,如果我将我的方法重命名为默认的“execute”,我不会收到此错误。我不能在我的DisplayStuff行动中拨打任何方法吗?

2 个答案:

答案 0 :(得分:2)

有几种可能性。

错误消息引用了另一个包我的第一个猜测是你没有部署最新版本的代码:struts.DisplayStuff.authenticate不是它的配置方式。

第二个猜测是Struts 2插件(如“约定”)的问题,这与您的配置混淆。

然而,如果没有更多细节,很难再多考虑它。

答案 1 :(得分:0)

这应该是

<a href="<s:url action="display" method="authenticate"/>">click here</a>