天天看點

Struts2中的java.lang.NoSuchMethodException異常提示

原文:http://blog.sina.com.cn/s/blog_5e979e1101012219.html

在學習struts2的時有時會出現此異常,現将其總結如下,友善大家參考:

1、先嘗試下看其它的方法能不能用,要是都是這種情況的話,可能是你的Action類沒有繼承structs裡面的DispatchAction或者其它的類。還有你注意下方法的參數清單,類型順序要正确才行,是按照以下順序的:ActionMapping mapping,ActionForm form ,HttpServletRequest request,HttpServletResponse response

2、 Action 類的方法被定義成 private 類型.如下 Action 中被通路的方法被定義成 private 類型.程式在通路其方法時,會抛出以上異常.

3、 其實java.lang.NoSuchMethodException這個異常的根本原因有兩個:

(1)、缺少某些jar檔案;

(2)、某些jar檔案有重複。

4、使用struts2架構出現的問題

在頁面使用jquery ajax 調用action中的vaildUname方法,報錯,說我的方法不存在。但實際是存在的。public String vaildUname(String loginName) throws Exception{ }

問題就在這個參數上,struts2中是不能有參數的(struts2是通過反射機制來執行action的方法,struts2規範目前action方法是不需要參數的,有參數的方法和沒參數的方法是兩個不同的方法,是以會出現找不到的情況)

解決方法:

private String loginName;

public String vaildUname() throws Exception{}

loginName的getter和setter方法

這樣在使用ajax調用的時候,就可以了

**5、**java.lang.NoSuchMethodException 這個異常是指你的action裡面沒有這個方法,說明已經找到了action 但是沒有找到方法,是以有2個情況,

第1種情況:你送出到的不是這個action ,查查配置檔案,有沒有一樣的path

第2種情況:你的action裡面沒有這個方法

繼續閱讀