Spring MVC框架:第八章:表單form:form標(biāo)簽
第六章 表單標(biāo)簽
SpringMVC也提供了一組類似JSTL的標(biāo)簽,供我們?cè)陧?yè)面上簡(jiǎn)化開發(fā)。下面是個(gè)例子:
<form:form action="${pageContext.request.contextPath }/emp" method="post" modelAttribute="employee">
<input type="hidden" name="_method" value="put"/>
<form:hidden path="empId"/>
<table align="center">
<tr>
<td colspan="2" align="center">編輯員工</td>
</tr>
<tr>
<td>姓名</td>
<td>
<form:input path="empName"/>
</td>
</tr>
<tr>
<td>社會(huì)保險(xiǎn)號(hào)</td>
<td>${requestScope.employee.ssn }</td>
</tr>
<tr>
<td>所在部門</td>
<td>
<form:select path="department.deptId" items="${requestScope.deptList }" itemValue="deptId" itemLabel="deptName"/>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="更新"/>
</td>
</tr>
</table>
</form:form>
1.導(dǎo)入標(biāo)簽庫(kù)
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
2.form:form標(biāo)簽
①action屬性
和HTML標(biāo)簽中的form標(biāo)簽的action屬性作用一致,用來設(shè)置表單提交的URL地址。如果form:form標(biāo)簽省略action屬性,那么會(huì)使用當(dāng)前表單所在頁(yè)面的URL地址作為action屬性的值。
②modelAttribute屬性
該標(biāo)簽無論是執(zhí)行保存還是更新操作,都要從請(qǐng)求域中讀取模型數(shù)據(jù)。如果沒有設(shè)置modelAttribute屬性那么就以command為屬性名從請(qǐng)求域中讀取。如果找不到則會(huì)拋出異常。
所以要想form:form標(biāo)簽正常工作一定要將一個(gè)模型對(duì)象保存到請(qǐng)求域中,哪怕是保存數(shù)據(jù)時(shí)也要?jiǎng)?chuàng)建一個(gè)空對(duì)象保存。
3.表單標(biāo)簽的共同屬性
①path
表單字段,對(duì)應(yīng)HTML元素的name屬性,支持級(jí)聯(lián)屬性。
②htmlEscape
是否對(duì)表單值的HTML特殊字符進(jìn)行轉(zhuǎn)換,默認(rèn)值為true。
③cssClass
表單組件對(duì)應(yīng)的CSS樣式類名。
④cssErrorClass
表單組件的數(shù)據(jù)存在錯(cuò)誤時(shí),采取的CSS樣式。
4.form:radiobuttons
單選框組標(biāo)簽,用于構(gòu)造多個(gè)單選框
①items
可以是一個(gè)List、String[]或Map
②itemValue
通過指定bean的一個(gè)屬性名生成radio的value值??梢允羌现衎ean的一個(gè)屬性值
③itemLabel
通過指定bean的一個(gè)屬性名生成radio的label值
④delimiter
多個(gè)單選框可以通過delimiter指定分隔符
5.form:errors
顯示表單組件或數(shù)據(jù)校驗(yàn)所對(duì)應(yīng)的錯(cuò)誤 <form:errors path=””/>:顯示表單所有的錯(cuò)誤 <form:errors path=”user”/>:顯示所有以u(píng)ser為前綴的屬性對(duì)應(yīng)的錯(cuò)誤 <form:errors path=”userName”/>:顯示特定表單對(duì)象屬性的錯(cuò)誤