Spring MVC框架:第八章:表單form:form標簽

第六章 表單標簽

SpringMVC也提供了一組類似JSTL的標簽,供我們在頁面上簡化開發(fā)。下面是個例子:

<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>社會保險號</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.導入標簽庫

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

2.form:form標簽
①action屬性

和HTML標簽中的form標簽的action屬性作用一致,用來設置表單提交的URL地址。如果form:form標簽省略action屬性,那么會使用當前表單所在頁面的URL地址作為action屬性的值。
②modelAttribute屬性

該標簽無論是執(zhí)行保存還是更新操作,都要從請求域中讀取模型數(shù)據(jù)。如果沒有設置modelAttribute屬性那么就以command為屬性名從請求域中讀取。如果找不到則會拋出異常。 所以要想form:form標簽正常工作一定要將一個模型對象保存到請求域中,哪怕是保存數(shù)據(jù)時也要創(chuàng)建一個空對象保存。
3.表單標簽的共同屬性
①path

表單字段,對應HTML元素的name屬性,支持級聯(lián)屬性。
②htmlEscape

是否對表單值的HTML特殊字符進行轉(zhuǎn)換,默認值為true。
③cssClass

表單組件對應的CSS樣式類名。
④cssErrorClass

表單組件的數(shù)據(jù)存在錯誤時,采取的CSS樣式。
4.form:radiobuttons

單選框組標簽,用于構造多個單選框
①items

可以是一個List、String[]或Map
②itemValue

通過指定bean的一個屬性名生成radio的value值??梢允羌现衎ean的一個屬性值
③itemLabel

通過指定bean的一個屬性名生成radio的label值
④delimiter

多個單選框可以通過delimiter指定分隔符

5.form:errors

顯示表單組件或數(shù)據(jù)校驗所對應的錯誤 <form:errors path=””/>:顯示表單所有的錯誤 <form:errors path=”user”/>:顯示所有以user為前綴的屬性對應的錯誤 <form:errors path=”userName”/>:顯示特定表單對象屬性的錯誤