打造专属自己的淘宝旺铺装修店铺优化商品推广网站客服工作物流发货
如果这个User的宿舍在Gryffindor(Gryffindor是哈利·波特在Hogwarts的宿舍——译者注), 那么“House”这一行的HTML源代码就如下所示:
<tr>
<td>House:</td> <td>
<select name="house">
<option value="Gryffindor" selected="selected">Gryffindor</option>
<option value="Hufflepuff">Hufflepuff</option> <option value="Ravenclaw">Ravenclaw</option> <option value="Slytherin">Slytherin</option> </select> </td> </tr>
13.9.11. options标签
这个标签生成一个HTML的“option”标签的列表。根据绑定的值,它会恰当的设置“selected”属性。
<tr>
<td>Country:</td> <td>
<form:select path="country">
<form:option value="-" label="--Please Select"/>
<form:options items="${countryList}" itemValue="code" itemLabel="name"/> </form:select> </td> </tr>
如果这个User生活在英国,那么“Country”这一行的HTML源代码就如下所示:
<tr>
<td>Country:</td> <td>
<select name="country">
<option value="-">--Please Select</option> <option value="AT">Austria</option>
<option value="UK" selected="selected">United Kingdom</option>
<option value="US">United States</option> </select> </td> </tr>
上面的例子展示了结合使用option标签和options标签产生相同的标准HTML, 也让你在JSP中显式的指定一个值只用于显示目的(在它所处的位置),例如例子中的默认字符串:“--Please Select”。
13.9.12. textarea标签
这个标签生成一个HTML的“textarea”。
<tr>
<td>Notes:</td>
<td><form:textarea path="notes" rows="3" cols="20" /></td> <td><form:errors path="notes" /></td> </tr>
13.9.13. hidden标签
这个标签使用绑定的值生成类型为“hidden”的HTML“input”标签。 在生成的HTML代码中,input标签的值和表单支持对象相应属性的值保持一致。 如果要提交一个未绑定的值,就只能使用类型为“hidden”的HTML input标签了。
<form:hidden path="house" />
如果我们选择以隐藏形式提交“house”的值,HTML代码将如下所示:
<input name="house" type="hidden" value="Gryffindor"/>
13.9.14. errors标签
这个标签通过一个HTML“span”标签展现字段的错误。它提供了访问由你的控制器或者与你的控制器关联的任何验证器产生的错误的途径。
假设我们想要在表单提交时显示所有与firstName和lastName字段有关的错误。 我们为User类的实例编写了名为UserValidator的验证器。
public class UserValidator implements Validator { public boolean supports(Class candidate) {
return User.class.isAssignableFrom(candidate); }
public void validate(Object obj, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "required", "Field is required.");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "required", "Field is required."); } }
form.jsp将如下所示:
<form:form> <table> <tr>
<td>First Name:</td>
<td><form:input path="firstName" /></td> <%-- Show errors for firstName field --%> <td><form:errors path="firstName" /></td> </tr> <tr>
<td>Last Name:</td>
<td><form:input path="lastName" /></td> <%-- Show errors for lastName field --%> <td><form:errors path="lastName" /></td> </tr> <tr>
<td colspan="3">
<input type="submit" value="Save Changes" /> </td> </tr> </table> </form:form>
如果我们提交的表单的firstName和lastName字段均为空值, HTML页面将如下所示:
<form method="POST"> <table> <tr>
<td>First Name:</td>
<td><input name="firstName" type="text" value=""/></td> <%-- Associated errors to firstName field displayed --%> <td><span name="firstName.errors">Field is required.</span></td> </tr> <tr>
<td>Last Name:</td>
<td><input name="lastName" type="text" value=""/></td> <%-- Associated errors to lastName field displayed --%> <td><span name="lastName.errors">Field is required.</span></td> </tr> <tr>
<td colspan="3">
<input type="submit" value="Save Changes" /> </td> </tr> </table> </form>
如果我们想要显示一个指定页面上的所有错误清单,又该如何呢? 下面的例子展示了
errors标签也支持一些基本的通配符功能。
path="*":显示所有错误
path="lastName*":显示所有与lastName字段有关的错误
下面的例子将会在页面头部显示一个错误清单,后面则在每个字段旁边显示该字段特有的错误:
<form:form>
<form:errors path="*" cssClass="errorBox" /> <table> <tr>
<td>First Name:</td>
<td><form:input path="firstName" /></td> <td><form:errors path="firstName" /></td> </tr> <tr>
<td>Last Name:</td>
<td><form:input path="lastName" /></td> <td><form:errors path="lastName" /></td> </tr> <tr>
<td colspan="3">
<input type="submit" value="Save Changes" /> </td> </tr> </table> </form:form>
HTML代码将如下所示:
<form method="POST">
<span name="*.errors">Field is required.<br/>Field is required.</span> <table> <tr>
<td>First Name:</td>
<td><input name="firstName" type="text" value=""/></td> <td><span name="firstName.errors">Field is required.</span></td> </tr> <tr>
<td>Last Name:</td>
<td><input name="lastName" type="text" value=""/></td> <td><span name="lastName.errors">Field is required.</span></td> </tr> <tr>
<td colspan="3">
<input type="submit" value="Save Changes" /> </td> </tr> </form>