该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固
如果想要使用SpringMVC自带标签库,需要在开头声明:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
form标签自动绑定一个属性值到当前form对应的实体对象(默认为command),可以通过ModelAttribute重写默认属性。
这一章比较简单,每个标签个一个小Demo:
input:
<form:input path="domain的属性名">
password:
<form:password path="domain的属性名"/>
hidden:
<form:hidden path="domain的属性名"/>
checkbox
如果该属性已经存在,则默认已经选上
<form:checkbox path="domain的属性名" label="复选框的值">
checkboxes
"${Model中Collections的属性}" path="domain的属性名"
对于Map类型的Collection来说,key值为标签的value值,value值为标签的label值,但是需要注意HashMap是乱序的
radiobutton
<form:radiobutton path="domain属性名"/>
radiobuttons
"domain属性值" items="${传入的Collection}"/>
其规则同checkboxes
select、option/options
<form:select path="domain的属性名">
<form:options items="${Collections变量}"/>
form:select>
<form:select path="domain的属性名" items="{Model中的Collection}"/>
errors
该标签需要与@InitBinder标签进行组合使用:
<form:errors path="domain的属性名"/>
简单进行总结一下,其实SpringMVC的自带标签库存在的目的就是1.设定默认值、2.方便迭代、3、显示错误
插个题外话,扯一下form标签中的enctype属性:
enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码,该属性与HTTP报文中的Content-Type属性有什么联系我暂时还不是很了解,以后补充,该属性有三个可选值:
值 | 具体处理 |
---|---|
text/plain | 所有空格换为+不对特殊字符编码 |
application/x-www-urlencoded | 对所有字符进行编码 |
multipart/form-data | 不对字符编码,文件上传时必须使用该值 |