表单标签配置
要使用 Spring MVC 的表单标签,需要在页面引入 Spring MVC 的表单标签库。
JSP 页面配置表单标签库:
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
Form 标签
Form 标签它自动的绑定来自 Model 中的一个属性值到当前 from 对应的实体对象,默认是 command 属性,这样就可以在 form 表单体里面方便地使用该对象的属性了。
通常都会指定 commandName 或 modeAttribute 属性,来指定使用绑定到 JavaBean 的名称,这两个属性功能基本一致。
<form:form action="/mvcexample/add" method="post" modelAttrobute="um">
Form 其他标签
- input 标签会被渲染为一个 type 为 text 的普通 HTML input 标签。使用 SpringMVC 的 input 标签的唯一作用就是它能绑定表单数据。
- SpringMVC 表单标签最大的好处就是它支持数据绑定,当表单标签不需要绑定的数据的时候,应该使用普通的 HTML 标签。
- hidden 标签用法跟 input 标签一样,也能绑定表单数据,只是它生成的是一个隐藏域。
- password 标签将会被渲染为一个 type 为 password 的普通 HTML input 标签。
- textarea 标签将被渲染为普通 HTML textarea 标签
Checkbox 标签
checkbox 标签会被渲染为一个 type 为 checkbox 的普通 HTML input 标签。checkbox 标签也是支持绑定数据的。checkbox 标签的选中与否状态是根据它绑定的值来判断的。
当 checkbox 绑定的是一个 boolean 数据的时候,那么 checkbox 的状态跟该 boolean,数据的状态是一样的:即 true 对应选中,false 对应不选中。
绑定列表数据,如数组、List 和 Set 等的时候,是当 checkbox 标签的 value 在我们绑定的列表数据中存在的时候该 checkbox 将为选中状态。
当 checkbox 绑定的是一个 Object 数据的时候,会拿所绑定对象数据的 toString 结果跟当前 checkbox 的 value 进行比较,如果能给匹配则该 checkbox 将为选中状态。
Checkboxes 标签
Checkboxes 用来根据给定的数据,生成一组多选框,必须指定 path 和 items
1:path:所绑定对象的属性,也就是用来判断是否被选中的项
2:items:用来展现的项,也就是总共有多少项
如果要想最后生成的 checkbox 的表现值和 value 不一样,可以使用 map,那么此时会根据 Map 的 key 进行判断是否选中。
radiobutton 和 radiobuttons 标签基本等同于 checkbox 和 checkboxes 标签的用法
Select 标签
类似于前面的 checkboxes 的使用,同样指定 path 和 items
<form:select path="deps" items="${um.allDeps}" multiple="false"></form:select>
- 1:如果绑定的 items 数据是 map 的话,那么 key 作为 option 的 value,而 map 的值作为 option 显示的数据。
- 2:如果集合数据又是一个对象的话,可以通过指定属性 itemLabel 和 itemValue 来指定将用于呈现的 option Label 和 Value。
- 3:如果集合中是其他数据的话,那就是既做 option 的 value,也做 option 的显示数据。
Option 标签
option 标签,如果 select 标签没有指定 items 属性,那么可以使用 option 标签来指定选项。其用法基本类似于 HTML 的 option 标签,就是多个数据绑定的功能,也就是能根据具体值来判断是否需要选中这项。
Options 标签
options 标签,如果 select 标签没有指定 items 属性,那么可以使用 options 标签来指定选项。
其用法基本类似于指定 select 标签的 items 属性,区别是:
- 1:select 标签指定 items 属性,会忽略所有标签体内写的 option。
2:options 标签前后均可以再手工添加 option。
请选择
Errors 标签
用来展现 Errors 对象中包含的错误信息。通过 errors 标签的 path 属性来绑定一个错误信息。可以通过 path 属性来展现两种类型的错误信息。
- 1:所有的错误信息,这个时候 path 的值应该置为“*”
- 2:当前对象的某一个域的错误信息,这个时候 path 应为所需展现的域的名称