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ò)誤