在進行 Spring MVC 項目開發時,一般會使用 EL 表達式和 JSTL 标簽來完成頁面視圖的開發。其實 Spring 也有自己的一套表單标簽庫,通過 Spring 表單标簽,可以很容易地将模型資料中的指令對象綁定到 HTML 表單元素中。下面我們就通過一個示例來示範該标簽庫的用法。
首先和 JSTL 标簽的使用方法相同,在使用 Spring 表單标簽之前,必須在 JSP 頁面開頭處聲明 taglib 指令,指令代碼如下。
常用的 Spring 表單标簽如下表所示。
名稱
作用
form
渲染表單元素
input
輸入框元件标簽,渲染 <input type="text"/> 元素
password
密碼框元件标簽,渲染 <input type="password"/> 元素
hidden
隐藏框元件标簽,渲染 <input type="hidden"/> 元素
textarea
多行輸入框元件标簽,渲染 textarea 元素
checkbox
複選框元件标簽,渲染一個 <input type="checkbox"/> 元素
checkboxes
渲染多個 <input type="checkbox"/> 元素
radiobutton
單選框元件标簽,渲染一個 <input type="radio"/> 元素
radiobuttons
渲染多個 <input type="radio"/> 元素
select
下拉清單元件标簽,渲染一個選擇元素
option
渲染一個選項元素
options
渲染多個選項元素
errors
顯示表單資料校驗所對應的錯誤資訊
以上标簽基本都擁有以下屬性。
path:屬性路徑,表示表單對象屬性,如 userName、userCode 等。
cssClass:表單元件對應的 CSS 樣式類名。
cssErrorClass:當送出表單後報錯(服務端錯誤),采用的 CSS 樣式類。
cssStyle:表單元件對應的 CSS 樣式。
htmlEscape:綁定的表單屬性值是否要對 HTML 特殊字元進行轉換,預設為 true。
下面以 <fm:form> 表單标簽為例,模仿添加使用者資訊。
建立實體類 user,代碼如下。
建立 addUser.jsp,代碼如下。
<fm:form> 标簽的 modelAttribute 屬性用于指定綁定的模型屬性。預設從模型中嘗試取名為“command”的表單對象,若不存在此表單對象,将會報錯。是以一般情況下會指定 modelAttribute 屬性。
此外,表單元件标簽頁擁有 HTML 标簽的各種屬性,如 id、onclick 等,都可以根據需要靈活使用。
建立顯示頁面 showUser.jsp,代碼如下。
建立 UserController,代碼如下。
通路位址:http://localhost:8080/springmvcDemo2/addUser,運作結果如下圖所示。

添加使用者
顯示添加使用者資訊