【问题标题】:struts2 NoSuchMethodException when trying to access Action method from JSP尝试从 JSP 访问 Action 方法时出现 struts2 NoSuchMethodException
【发布时间】:2014-04-19 06:36:40
【问题描述】:

这里是 Struts2 新手。我有一个 JSP 文件,它有一个链接到名为“authenticate”的动作的锚点。当我点击锚点时,我收到一条错误消息: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>

有趣的是,如果我将我的方法重命名为默认的“执行”,我不会收到此错误。我不应该能够在我的DisplayStuff 操作中调用任何方法吗?

【问题讨论】:

    标签: java jsp url struts2


    【解决方案1】:

    有几种可能。

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

    第二个猜测是 Struts 2 插件(如“约定”)与您的配置冲突。

    但是,如果没有更多细节,就很难考虑更多。

    【讨论】:

    • 对不起,我的包实际上叫“struts”,为了避免混淆,我只是在这个问题中将它重命名为“mypackage”。我刚刚忘记编辑错误消息以反映更改。我已经解决了我的问题。
    【解决方案2】:

    这应该是

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

    【讨论】:

    • 好眼光!这似乎已经解决了它。谢谢!
    • 还有可能设置namespace属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    相关资源
    最近更新 更多