action中定義的方法能不能帶參數?


今天在使用Struts2.0做登錄時,突然出現java.lang.NoSuchMethodException的問題

檢查了許久發現是在Action中在定義方法出現問題,自定義的方法是不能帶參數的,可以通過別的方式去帶一些動態的參數值,xxx.action?param=xxxx,用Request去取這個參數。如果你帶了參數,在頁面要執行方法時會找不到此方法,就會出現上面的錯誤。

Struts2中Action接收參數的方法主要有以下三種:
1.使用Action的屬性接收參數:
    a.定義:在Action類中定義屬性,創建get和set方法;
    b.接收:通過屬性接收參數,如:userName;
    c.發送:使用屬性名傳遞參數,如:user1!add?userName=Magci;
2.使用DomainModel接收參數:
    a.定義:定義Model類,在Action中定義Model類的對象(不需要new),創建該對象的get和set方法;
    b.接收:通過對象的屬性接收參數,如:user.getUserName();
    c.發送:使用對象的屬性傳遞參數,如:user2!add?user.userName=MGC;
3.使用ModelDriven接收參數:
    a.定義:Action實現ModelDriven泛型接口,定義Model類的對象(必須new),通過getModel方法返回該對象;
    b.接收:通過對象的屬性接收參數,如:user.getUserName();
    c.發送:直接使用屬性名傳遞參數,如:user2!add?userName=MGC

以下只介紹通過Action的屬性接收參數例子

jsp頁面代碼:

   

 Action中通過set、get方法獲取,代碼:

注意的是loginAcc(Account account)這樣寫是錯誤的。以上僅代表個人觀點,歡迎大家拍磚(*^_^*)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM