spring mvc表單form值自動傳到javabean-注解@ModelAttribute


直接通過Form Bean進行表單可以簡化表單提交的處理,特別是對於復雜表單,過於簡單的表單就不建議了,因為畢竟需要額外創建一個Form Bean。

前段時間項目中有一個比較復雜的表單,有多層次而且涉及數組,如果不采用Form Bean的處理方式會比較麻煩,但多層而且是數組,之前一直沒有找到如何通過Form Bean方式進行處理,但相信Spring MVC應該可以做到,因為Spring的強大之處就是IOC嘛,所以在網上查閱資料,並不斷嘗試后終於解決,現在不管是多么復雜的表單均可以通過Form Bean的方式進行處理,大大簡化復雜表單的處理。
解決方案就是采用Spring的注解@ModelAttribute, 這個注解相信大家都比較熟悉,因為Spring很多關於Form處理都有關於它的例子,但這些例子給出的表單都比較簡單,而且采用了Spring的 Form標簽,而我比較喜歡原始的JSP和HTML。閑話少說,現在正式開始我們的復雜Form處理,我的Form Bean結構如下:
FormBean的結構如下:
private String name;
private int age;
private String[] associate;
private ComBen[] bens; //另一個數組對像
ComBen的結構如下:
private String com;
private int[] typevalue;
private String[] typename;
private ThirdBen[] thdben;//再一層數組對像
ThirdBen的結構如下:
private String thdname;
private String value[];//又一層數組值
相信已經足夠復雜了,我們只需要將FormBean在Controller中標識為@ModelAttribute,如下:
@RequestMapping(value=”/test/testForm.do”, method = RequestMethod.POST)
public String testFormBean(@ModelAttribute(“fbean”)FormBean ben) {



}

注意:@ModelAttribute中的標識名,這個要與jsp中的Form id相同)。

再看看我們的JSP頁面中的Form如何編寫(form要給定一個id,這個id要與@ModelAttribute中的名稱一致):



簡潔吧,我們只要把上述form提交到Controller,就可以在Controller中直接得到這個復雜的FormBean對像;看完這個例子,相信大家可以處理任何的復雜表單了。


免責聲明!

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



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