SpringMvc中表单标签的使用注意点

xiaoxiao2021-02-28  112

一般情况下,通过 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); %> 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"; }

转载请注明原文地址: https://www.6miu.com/read-31806.html

最新回复(0)