spring MVC之用表單控制器處理表單 三

2021-08-31 15:04:24 字數 1730 閱讀 8057

spring mvc之用表單控制器處理表單(三)

初始化命令物件

你可以為******formcontroller指定乙個命令物件,它會被例項化,用於繫結表單域。但是在某些情況下,你可能需要親自初始化命令物件。要解決這個問題,你必須親自初始化該命令物件。為此,可以覆蓋******formcontroller的formbackingobject()方法。這個方法的預設實現只是例項化命令類。當你覆蓋該方法時,是不需要命令類的,因為******formcontroller再也不會為你例項化這個類了。

}這個方法的另一種典型用途是獲得某些用來初始化命令物件的請求引數。舉個例子,你可以從請求中得到乙個username引數,然後用這個名稱來初始化player。 

package com.apress.springrecipes.court.web;

...import org.springframework.web.bind.servletrequestutils;

public class reservationformcontroller extends ******formcontroller

}

現在,當顯示這個表單的時候,username引數會先被填到player的名稱域裡。你可以通過下面的url進行測試。

http://localhost:8080/court/reservationform.htm?username=roger
還有兩個與命令物件有關的屬性可以配置。第乙個屬性是bindonnewform,它設定的是在建立新表單時,請求引數是否應該繫結到命令物件上。表示請求引數是否被繫結到同名屬性上。例如,可以在構造器中啟用這個屬性。

package com.apress.springrecipes.court.web;

...public class reservationformcontroller extends ******formcontroller

}

現在,當顯示表單時,請求引數會被繫結到同名的屬性中去。通過下面的url可以進行測試。

http://localhost:8080/court/reservationform.htm?date=2008-01-14
第二個屬性是sessionform,設定了命令物件是否應該儲存在會話中。預設情況下,該屬性為false,即使在由於繫結錯誤而再次呈現表單的時候,也會為每個請求建立新的命令物件。如果這個屬性為true。命令物件就會被儲存在會話中供後續使用,直接表單任務成功完成。然後這個命令物件就會從會話中被清除掉。這通常用在命令物件為持久化物件的時候,為了追蹤變化,它需要在不同的請求中保持一致。 

package com.apress.springrecipes.court.web;

...public class reservationformcontroller extends ******formcontroller

}

spring MVC之用表單控制器處理表單 四

spring mvc之用表單控制器處理表單 四 提供表單引用資料 當要求表單控制器呈現表單檢視時,它可能有某些型別的引用資料要提供給表單。如例 當請求reservationformcontroller顯示預訂表單時,必須在模型中包含所有的可用運動型別,這樣表單才能在html選擇框中顯示它們。為此,你...

spring MVC之用註解開發控制器 一

spring mvc之用註解開發控制器 一 在傳統的spring mvc開發方法中,必須在bean配置檔案中為每個控制器類配置例項和請求對映。如果spring mvc可以自動偵測你的控制器類和請求對映,就能減少配置所需要的工作量。此外,讓每個控制器類去實現或者擴充套件特定於框架的介面或者基類,也不夠...

SpringMVC 表單驗證

表單驗證 null 被注釋的元素必須為 null notnull 被注釋的元素必須不為 null asserttrue 被注釋的元素必須為 true assertfalse 被注釋的元素必須為 false min value 被注釋的元素必須是乙個數字,其值必須大於等於指定的最小值 max valu...