報錯:java.lang.NoSuchMethodException: com…..action,java.lang.Class.getMethod()

來源:互聯網
上載者:User

剛剛入門struts2,當往action中傳參的時候,弄了一上午,都提示一下錯誤:

java.lang.NoSuchMethodException: com.....action,java.lang.Class.getMethod()……

網上搜到的解決辦法。發現struts2中action不能含有參數,只能用get、set 方法。

java.lang.NoSuchMethodException 解決辦法

 

1、Action類沒有繼承structs裡面的DispatchAction或者其它的類

你有沒有試試看 其它的方法能不能用,要是都是這種情況的話,可能是你的Action類沒有繼承structs裡面的DispatchAction或者其它的類。還有你注意下方法的參數列表,類型順序要正確才行,是按照以下順序的:

ActionMapping mapping,ActionForm form
,HttpServletRequest request,HttpServletResponse response。

2、Action 類的方法被定義成 private 類型.

如下 Action 中被訪問的方法被定義成 private 類型.程式在訪問其方法時,會拋出以上異常

3、jar包問題

缺少某些jar檔案或者某些jar檔案有重複。

4、使用struts2架構出現的問題
在頁面使用jquery ajax 調用action中的vaildUname方法,報錯,說我的方法不存在。但實際是存在的。public String vaildUname(String loginName) throws Exception{}問題就在這個參數上,struts2中是不能有參數的
解決方案:
private String loginName;
public String vaildUname() throws Exception{}
loginName的getter和setter方法
這樣在使用ajax調用的時候,就可以了

struts2是通過反射機制來執行action的方法,struts2規範目前action方法是不需要參數的,有參數的方法和沒參數的方法是兩個不同的方法,所以會出現找不到的情況。

5、jar版本不對

應該是3.6jar包的問題,換回3.2的包又沒事了

6、確認你提交的是不是這個action,你的action裡面沒有這個方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.