内容关键词:数据绑定、表单标签库、JSP、标签、类
知识来源: 720科技(张森鹏)、Spring MVC学习指南(第2版)
数据绑定是将用户输入绑定到领域模型的一种特性。有了数据绑定,类型总是为 String 的 HTTP 请求参数,可用于填充不同类型的对象属性。数据绑定使得 form bean(如前面各章中的ProductForm 实例)变成多余的。
为了高效地使用数据绑定,还需要 Spring 的表单标签库。
数据绑定概览:数据绑定的另一个好处是:当输入验证失败时,它会重新生成一个 HTML 表单。手工编
写 HTML 代码时,必须记着用户之前输入的值,重新填充输入字段。有了 Spring 的数据绑定
和表单标签库后,它们就会替你完成这些工作。
表单标签库:表单标签库中包含了可以用在JSP 页面中渲染 HTML 元素的标签。为了使用这些标签, 必须在 JSP 页面的开头处声明这个 taglib 指令。<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
#表单标签库中的标签:
标签 | 描述 |
form | 渲染表单元素 |
input | 渲染<input type="text"/>元素 |
password | 渲染<input type="password"/>元素 |
hidden | 渲染<input type="hidden"/>元素 |
textarea | 渲染 textarea 元素 |
checkbox | 渲染一个<input type="checkbox"/>元素 |
checkboxes | 渲染多个<input type="checkbox"/>元素 |
radiobutton | 渲染一个<input type="radio"/>元素 |
radiobuttons | 渲染多个<input type="radio"/>元素 |
select | 渲染一个选择元素 |
option | 渲染一个可选元素 |
options | 渲染一个可选元素列表 |
errors | 在 span 元素中渲染字段错误 |
1.表单标签:表单标签用于渲染HTML 表单。要使用渲染一个表单输入字段的任何其他标签,必须有一个 form 标签。
属性 | 描述 |
acceptCharset | 定义服务器接受的字符编码列表 |
commandName | 暴露表单对象之模型属性的名称,默认为 command |
cssClass | 定义要应用到被渲染 form 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 form 元素的 CSS 样式 |
htmlEscape | 接受 true 或者 false,表示被渲染的值是否应该进行 HTML 转义 |
modelAttribute | 暴露表单支持对象的模型属性名称,默认为 command |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的值进行 HTML 转义 |
path | 要绑定的属性路径 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的值进行 HTML 转义 |
path | 要绑定的属性路径 |
showPassword | 表示应该显示或遮盖密码,默认值为 false |
属性 | 描述 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的值进行 HTML 转义 |
path | 要绑定的属性路径 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的值进行 HTML 转义 |
path | 要绑定的属性路径 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的(多个)值进行 HTML 转义 |
label | 要作为标签用于被渲染复选框的值 |
path | 要绑定的属性路径 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的(多个)值进行 HTML 转义 |
label | 要作为标签用于被渲染复选框的值 |
path | 要绑定的属性路径 |
8.checkboxes标签:checkboxes 标签渲染多个<input type="checkbox"/>元素。
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
delimiter | 定义两个 input 元素之间的分隔符,默认没有分隔符 |
element | 给每个被渲染的 input 元素都定义一个 HTML 元素,默认为“span” |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的(多个)值进行 HTML 转义 |
items | 用于生成 input 元素的对象的 Collection、Map 或者 Array |
itemLabel | item 属性中定义的 Collection、Map 或者 Array 中的对象属性,为每个 input 元素提供标签 |
itemValue | item 属性中定义的 Collection、Map 或者 Array 中的对象属性,为每个 input 元素提供值 |
path | 要绑定的属性路径 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
delimiter | 定义两个 input 元素之间的分隔符,默认没有分隔符 |
element | 给每一个被渲染的 input 元素都定义一个 HTML 元素,默认为“span” |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的(多个)值进行 HTML 转义 |
items | 用于生成 input 元素的对象的 Collection、Map 或者 Array |
itemLabel | item 属性中定义的 Collection、Map 或者 Array 中的对象属性,为每个 input 元素提供标签 |
itemValue | item 属性中定义的 Collection、Map 或者 Array 中的对象属性,为每个 input 元素提供值 |
path | 要绑定的属性路径 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的(多个)值进行 HTML 转义 |
items | 用于生成 input 元素的对象的 Collection、Map 或者 Array |
itemLabel | item 属性中定义的 Collection、Map 或者 Array 中的对象属性,为每个 input 元素提供标签 |
itemValue | item 属性中定义的 Collection、Map 或者 Array 中的对象属性,为每个 input 元素提供值 |
path | 要绑定的属性路径 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的(多个)值进行 HTML 转义 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
cssErrorClass | 定义要应用到被渲染 input 元素的 CSS 类,如果 bound 属性中包含错误,则覆盖 cssClass 属性值 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的(多个)值进行 HTML 转义 |
items | 用于生成 input 元素的对象的 Collection、Map 或者 Array |
itemLabel | item 属性中定义的 Collection、Map 或者 Array 中的对象属性,为每个 input 元素提供标签 |
itemValue | item 属性中定义的 Collection、Map 或者 Array 中的对象属性,为每个 input 元素提供值 |
属性 | 描述 |
cssClass | 定义要应用到被渲染 input 元素的 CSS 类 |
cssStyle | 定义要应用到被渲染 input 元素的 CSS 样式 |
属性 | 描述 |
Delimiter | 分隔多个错误消息的分隔符 |
element | 定义一个包含错误消息的 HTML 元素 |
htmlEscape | 接受 true 或者 false,表示是否应该对被渲染的(多个)值进行 HTML 转义 |
path | 要绑定的错误对象路径 |