2013-04-02 62 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

相關問題