15人閱讀    評論(0)    收藏        編輯    刪除
   
   
  1. java.lang.NoSuchMethodException:com.yxq.action.AdminAction.SchoolAdd()  
  2.   
  3.     不久前在學習struts時出現這個錯誤,在網上搜索了半天,發現答案不一。將其總結如下,以方便大家參考。  
  4.   
  5.   
  6.   
  7. 1、  
  8. 你有沒有試試看 其它的方法能不能用,要是都是這種情況的話,可能是你的Action類沒有繼承structs里面的DispatchAction或者其它的類。還有你注意下方法的參數列表,類型順序要正確才行,是按照以下順序的:ActionMapping mapping,ActionForm form ,HttpServletRequest request,HttpServletResponse response  
  9.   
  10.   
  11.   
  12. 2、  
  13. 發現有兩種錯誤可能引起上述異常:  
  14. 一.Action 類的方法被定義成 private 類型.  
  15. 如下 Action 中被訪問的方法被定義成 private 類型.程序在訪問其方法時,會拋出以上異常.  
  16.   
  17.   
  18.   
  19. 3、  
  20. 其實java.lang.NoSuchMethodException這個異常的根本原因有兩個:第一,缺少某些jar文件;第二,某些jar文件有重復。  
  21.   
  22.   
  23. 4、  
  24. 使用struts2框架出現的問題  
  25. 在頁面使用jquery ajax 調用action中的vaildUname方法,報錯,說我的方法不存在。但實際是存在的。  
  26. public String vaildUname(String loginName) throws Exception{}  
  27. 問題就在這個參數上,struts2中是不能有參數的(具體我也不知道為什)  
  28.   
  29. 解決方法:  
  30. private String loginName;  
  31. public String vaildUname() throws Exception{}  
  32. loginName的getter和setter方法  
  33. 這樣在使用ajax調用的時候,就可以了  
  34.   
  35. ?   struts2是通過反射機制來執行action的方法,struts2規范目前action方法是不需要參數的,有參數的方法和沒參數的方法是兩個不同的方法,所以會出現找不到的情況。   
  36.   
  37.   
  38.   
  39. 5、  
  40. jar版本不對  
  41. 應該是3.6jar包的問題,換回3.2的包又沒事了  
  42.   
  43.   
  44.   
  45.   
  46. 6、  
  47. java.lang.NoSuchMethodException 這個異常是指你的action里面沒有這個方法,說明已經找到了action 但是沒有找到方法,所以有2個情況,  
  48. 第1種情況是,你提交到的不是這個action ,查查配置文件,有沒有一樣的path  
  49.   
  50.   
  51. 第2種情況,你的action里面沒有這個方法  
作者:chengchanglun 發表于2012-4-9 15:00:50 原文鏈接
閱讀:3488 評論:0 查看評論