您的位置:首页 > 编程语言 > Java开发

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);
%>
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";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: