WHY 使用 form 标签?
通过SpringMVC的表单标签可以实现将模型数据中的属性和HTML表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显
form标签中的 path 属性对应 HTML 表单标签的 name 属性值
- 一般情况下,通过GET请求获取表单页面,而通过POST请求提交表单页面,因此获取表单页面和提交表单页面的URL是相同的。只要满足该条件的契约,<form:form>标签就无需通过action属性指定提交的URL
- 注意:通过modelAttribute属性值指定绑定的模型属性,若没有指定该属性,则默认从request域对象中读取command的表单bean,如果该属性也不存在,就会发生错误 点击查看 解决方法
SpringMVC提供了多个表单组件标签,如
<form:input/> <form:select/> 等,用以绑定表单字段的属性值,共有属性如下:
—— path:表单字段,对应 HTML 元素的 name 属性,支持级联属性,如 employee.id
—— htmlEscape:是否对表单值的 HTML 特殊字符进行转换,默认值为 true
—— cssClass:表单组件对应的 CSS 样式名
—— cssErrorClass:表单组件的数据存在错误时,采取的 CSS 样式
<form:input/> <form:password/> <form:hidden/> <form:text/>:对应HTML表单的 text、password、hidden、textarea标签
<form:radiobutton/> / <form:checkbox/> :单选框 / 复选框(用于构造单个复选框)组件标签,当表单bean对应的属性值和value值相等时,单选框 / 复选框 被选中
<form:radiobuttons/> / <form:checkboxs/> : 单选框 / 复选框(用于构造多个复选框) 组标签,用于构造多个单选框
——items:可以是一个List、String[]或Map
——itemValue:指定radio的value值。可以是集合中bean的一个属性值
——itemLabel:指定radio的label值
——delimiter:多个单选框可以通过delimiter指定分隔符
<form:select/> 构造下拉框组件 <form:option/> 构造下拉框选项组件 两者需结合使用 使用方式同<form:radiobuttons/>
<form:errors/> :显示表单组件或数据校验所对应的错误
—— <form: errors path="*“/>: 显示表单所有错误
——<form:errors path="user*"/>:显示所有以user为前缀的属性对应的错误
——<form:errors path="username"/>:显示特定表单对象属性的错误