2013-04-02 77 views
0

Struts2新手在这里。我有一个JSP文件,它有一个链接到一个名为“authenticate”的Action的锚点。当我点击了锚,我得到一个错误信息:java.lang.NoSuchMethodException: mypackage.DisplayStuff.authenticate() java.lang.Class.getMethod(Unknown Source)struts2 NoSuchMethodException尝试从JSP访问Action方法

这里是我的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操作中调用任何方法吗?

回答

0

这应该是

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

好眼睛!这似乎修复了它。谢谢! – hemlocker

+0

还有'namespace'属性可能会设置。 –

2

有几种可能性。

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

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

但是,如果没有更多的细节,很难对它进行更多的思考。

+0

对不起,我的包实际上是所谓的“支柱”,我只是改名为它在这个问题上“mypackage的”以避免混淆。我刚刚忘记编辑错误消息以反映更改。我已经解决了我的问题。 – hemlocker

相关问题