Spring MVC3複雜表單終極解決辦法

2021-08-26 19:56:45 字數 1203 閱讀 2618

直接通過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,如下:

public string testformbean(@modelattribute("fbean")formbean ben) ([b]注意:@modelattribute中的標識名,這個要與jsp中的form id相同[/b])。

再看看我們的jsp頁面中的form如何編寫([b]form要給定乙個id,這個id要與@modelattribute中的名稱一致[/b]):

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

springmvc(3) 引數繫結

1.引數繫結過程 2.預設支援的型別 直接在controller方法形參上定義下邊型別的物件,就可以使用這些物件。通過request物件獲取請求資訊 通過response處理相應資訊 model是乙個介面,modelmap是乙個介面實現。作用 將model資料填充到request域。2.5 簡單資料...

SpringMVC(3)常用的註解

作用 把請求中指定名稱的引數給控制器中的形參賦值 屬性 value 請求引數中的名稱 required 請求引數中是否提供此引數,預設是true,表示必須提供,不提供就報錯。如下 控制器中的 controller public class annocontroller jsp testrequest...

深入理解Spring MVC 3 一

一 前言 struts2也是比較優秀的mvc構架,優點非常多比如良好的結構。但這裡想說的是缺點,struts2由於採用了值棧 ognl表示式 struts2標籤庫等,會導致應用的效能下降。struts2的多層 多例項action效能都很好。可以參考我寫的一篇關於spring mvc與struts2與...