SpringMvc中表单标签的使用注意点
2017-05-05 16:35
477 查看
一般情况下,通过 GET 请求获取表单页面,而通过POST 请求提交表单页面,因此获取表单页面和提交表单页面的 URL 是相同的。只要满足该最佳条件的契约,<form:form> 标签就无需通过 action 属性指定表单提交的 URL。
可以通过 modelAttribute 属性指定绑定的模型属性,若没有指定该属性,则默认从 request 域对象中读取command 的表单 bean,如果该属性值也不存在,则会发生错误。
SpringMVC 提供了多个表单组件标签,
如<form:input/>、<form:select/> 等,用以绑定表单字段的属性值,它们的共有属性如下:
-path:表单字段,对应 html 元素的 name 属性,支持级联属性
– htmlEscape:是否对表单值的 HTML 特殊字符进行转换,默认值为 true
– cssClass:表单组件对应的 CSS 样式类名
– cssErrorClass:表单组件的数据存在错误时,采取的 CSS 样式
• form:input、form:password、form:hidden、form:textarea
:对应 HTML 表单的 text、password、hidden、textarea标签
•form:radiobutton:单选框组件标签,当表单 bean 对应的
属性值和 value 值相等时,单选框被选中
• form:radiobuttons:单选框组标签,用于构造多个单选框
– items:可以是一个 List、String[] 或 Map
– itemValue:指定 radio 的 value 值。可以是集合中 bean 的一个属性值
– itemLabel:指定 radio 的 label 值
– delimiter:多个单选框可以通过 delimiter 指定分隔符
• form:checkbox:复选框组件。用于构造单个复选框
• form:checkboxs:用于构造多个复选框。使用方式同 form:radiobuttons 标签
• form:select:用于构造下拉框组件。使用方式同
form:radiobuttons 标签
• form:option:下拉框选项组件标签。使用方式同
form:radiobuttons 标签
• form:errors:显示表单组件或数据校验所对应的错误
– <form:errors path= “ *” /> :显示表单所有的错误
– <form:errors path= “ user*” /> :显示所有以 user 为前缀的属性对应的错误
– <form:errors path= “ username” /> :显示特定表单对象属性的错误
ex:
radio Button
首先需要在复选框中加入male和female的两个属性
<%
Map<String,String> genders=new HashMap<>();
genders.put("1","Male");
genders.put("0","Female");
request.setAttribute("genders",genders);
%>
显示效果:
下拉框:
Department:<form:select path="department.id"
items="${departments}"
itemLabel="departmentName"
itemValue="id">
</form:select>
@RequestMapping(value = "emp",method = RequestMethod.GET)
public String input(Map<String,Object> map){
map.put("departments",departmentDao.getDepartments());//需要在表单上显示部门信息
map.put("employee",new Employee());//防止报错
return "input";
}
注意点:
SpringMvc默认表单一定要进行回显,即便是第一次操作,都会去请求域中找寻对应的bean来匹配当前的表单值。
ex:
可以通过 modelAttribute 属性指定绑定的模型属性,若没有指定该属性,则默认从 request 域对象中读取command 的表单 bean,如果该属性值也不存在,则会发生错误。
SpringMVC 提供了多个表单组件标签,
如<form:input/>、<form:select/> 等,用以绑定表单字段的属性值,它们的共有属性如下:
-path:表单字段,对应 html 元素的 name 属性,支持级联属性
– htmlEscape:是否对表单值的 HTML 特殊字符进行转换,默认值为 true
– cssClass:表单组件对应的 CSS 样式类名
– cssErrorClass:表单组件的数据存在错误时,采取的 CSS 样式
• form:input、form:password、form:hidden、form:textarea
:对应 HTML 表单的 text、password、hidden、textarea标签
•form:radiobutton:单选框组件标签,当表单 bean 对应的
属性值和 value 值相等时,单选框被选中
• form:radiobuttons:单选框组标签,用于构造多个单选框
– items:可以是一个 List、String[] 或 Map
– itemValue:指定 radio 的 value 值。可以是集合中 bean 的一个属性值
– itemLabel:指定 radio 的 label 值
– delimiter:多个单选框可以通过 delimiter 指定分隔符
• form:checkbox:复选框组件。用于构造单个复选框
• form:checkboxs:用于构造多个复选框。使用方式同 form:radiobuttons 标签
• form:select:用于构造下拉框组件。使用方式同
form:radiobuttons 标签
• form:option:下拉框选项组件标签。使用方式同
form:radiobuttons 标签
• form:errors:显示表单组件或数据校验所对应的错误
– <form:errors path= “ *” /> :显示表单所有的错误
– <form:errors path= “ user*” /> :显示所有以 user 为前缀的属性对应的错误
– <form:errors path= “ username” /> :显示特定表单对象属性的错误
ex:
radio Button
首先需要在复选框中加入male和female的两个属性
<%
Map<String,String> genders=new HashMap<>();
genders.put("1","Male");
genders.put("0","Female");
request.setAttribute("genders",genders);
%>
Gender:<form:radiobuttons path="gender" items="${genders }"/>
显示效果:
下拉框:
Department:<form:select path="department.id"
items="${departments}"
itemLabel="departmentName"
itemValue="id">
</form:select>
@RequestMapping(value = "emp",method = RequestMethod.GET)
public String input(Map<String,Object> map){
map.put("departments",departmentDao.getDepartments());//需要在表单上显示部门信息
map.put("employee",new Employee());//防止报错
return "input";
}
注意点:
SpringMvc默认表单一定要进行回显,即便是第一次操作,都会去请求域中找寻对应的bean来匹配当前的表单值。
ex:
<form:form action="emp" method="post" modelAttribute="employee"> <%--path属性对应html表单标签的name属性--%> LastName:<form:input path="lastName"/> <br> Email:<form:input path="email"/> <br> <%----%> <% Map<String,String> genders=new HashMap<>(); genders.put("1","Male"); genders.put("0","Female"); request.setAttribute("genders",genders); %> <%--radio Button--%> Gender:<form:radiobuttons path="gender" items="${genders }"/> <br> <%--下拉框--%> Department:<form:select path="department" items="${departments}" itemLabel="departmentName" itemValue="id"> </form:select> <br> <input type="submit" value="Submit"> </form:form>
@RequestMapping(value = "emp",method = RequestMethod.GET) public String input(Map<String,Object> map){ map.put("departments",departmentDao.getDepartments()); map.put("employee",new Employee());//防止报错 return "input"; }
相关文章推荐
- springmvc form表单标签使用
- SpringMVC中使用bean来接收form表单提交的参数时的注意点
- springmvc form表单标签使用
- SpringMVC-6 表单标签使用与静态资源处理
- 【SpringMVC】<context:include-filter>和<context:exclude-filter>使用时要注意的地方 在Spring MVC中的配置中一般会遇到这两个标签,作
- springmvc form表单标签使用
- SpringMVC中使用bean来接收form表单提交的参数时的注意点
- 【SpringMVC】<context:include-filter>和<context:exclude-filter>使用时要注意的地方 在Spring MVC中的配置中一般会遇到这两个标签,作为<
- SpringMVC(18):使用spring表单标签
- Spring--SpringMVC中使用bean来接收form表单提交的参数时的注意点
- SpringMVC4.3x教程之五SpringMVC表单标签的使用
- SpringMVC表单标签使用详解
- springMVC(12)------表单标签的使用
- springmvc form表单标签使用
- DWR高级主题之DWR与spring集成(使用SpringMVC时dwr:controller标签说明)
- HTML标签的使用要注意语义化
- struts2中部分标签使用(for 4000 m表单)
- 使用Spring的表单标签库 - Spring Framework reference 2.0.5 参考手册中文版
- 第三十章 使用标签防止表单重复提交
- HTML5视频标签使用时注意事项