HTTP 參數均為 String,手動轉換類型(如 Float.parseFloat)繁瑣且易出錯。Spring MVC 數據綁定自動將請求參數按類型轉換並填充到領域對象,Controller 只需直接接收對象:
JSP 頂部聲明:
<%@taglib uri="https://www.springframework.org/tags/form" prefix="form" %>
_method,需配合 HiddenHttpMethodFilter。<form:form commandName="book" action="book_update" method="post">
<form:input path="title"/>
<form:select path="category.id" items="${categories}" itemLabel="name" itemValue="id"/>
<input type="submit" value="Update">
</form:form>
渲染 <input type="text">,path 綁定對象屬性,自動回顯值。
<form:select path="favoriteBall" items="${ballMap}"/>
<!-- ballMap: {1:'籃球', 2:'足球'} -->
checkboxes 批量生成,需指定 items。用法同 checkbox,但同組 path 相同,value 不同。
<form:errors path="*"/> <!-- 顯示所有錯誤 -->
<form:errors path="name"/> <!-- 顯示 name 字段錯誤 -->
配合 @Valid + BindingResult 或 Validator 使用。
/book_edit/{id}。form:select 綁定分類,form:input 綁定標題/作者/ISBN。/book_update,自動綁定到 Book 對象。<form:form method="delete" modelAttribute="user">
<input type="hidden" name="_method" value="delete"/> <!-- 手動寫法 -->
...
</form:form>
web.xml 必須配置 HiddenHttpMethodFilter(在 MultipartFilter 之後)。
Spring MVC 表單標簽庫通過 path 實現雙向綁定:渲染時回顯對象值,提交時自動封裝。核心優勢在於「約定優於配置」,減少樣板代碼。掌握 form:form、input、select、checkbox(es)、radio(button)s、errors 六大標簽即可覆蓋 90% 表單場景。