当前位置: 首页>前端>正文

springmvc获取表单数据 bean springmvc获取表单的几种方式


首先感谢尚硅谷老师的资源,这是我自己整理一下的笔记,希望能给各位带来帮助

Spring的表单标签(不过这个不是重点  可以先过)

 

1、form标签

 

通过 SpringMVC 的表单标签可以实现将模型数据中的属性和 HTML 表单元素相绑定,

以实现表单数据更便捷编辑和表单值的回显

• 一般情况下,通过 GET请求获取表单页面,而通过POST 请求提交表单页面,

因此获取表单页面和提交表单页面的 URL 是相同的。只要满足该最佳条件的契约,

<form:form> 标签就无需通过 action 属性指定表单提交的URL

• 可以通过modelAttribute 属性指定绑定的模型属性,若没有指定该属性,

则默认从 request域对象中读取command 的表单 bean(所以我们要在modelAttribute里定义好值),如果该属性值也不存

在,则会发生错误。

<form:formaction="${pageContext.request.contextPath}/emp" 

method="POST"modelAttribute="employee">

 这里就把modelAttribute定义为employee,也就是从handler中接收key为emloyee的值

 

2、表单标签

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"

 

举例:

<form:formaction="${pageContext.request.contextPath}/emp"method="POST"

modelAttribute="employee">

<form:errorspath="*"></form:errors>

<br>

<c:iftest="${employee.id ==null }">

<!-- path 属性对应 html表单标签的 name 属性值 -->

LastName: <form:inputpath="lastName"/>

<form:errorspath="lastName"></form:errors>

</c:if>

<c:iftest="${employee.id !=null }">

<form:hiddenpath="id"/>

<inputtype="hidden"name="_method"value="PUT"/>

<%-- 对于 _method不能使用 form:hidden 标签, 因为modelAttribute 对应的 bean 中没有_method 这个属性 --%>

<%--

<form:hiddenpath="_method" value="PUT"/>

--%>

</c:if>

<br>

    Email: <form:inputpath="email"/>

   <form:errorspath="email"></form:errors>

<br>

<%

   Map<String,String> genders =new HashMap();

   genders.put("1","Male");

   genders.put("0","Female");

   request.setAttribute("genders", genders);

%>

Gender:

<br>

<form:radiobuttonspath="gender"items="${genders}"delimiter="<br>"/>

<br>

Department: <form:selectpath="department.id"

items="${departments}"itemLabel="departmentName"itemValue="id"></form:select>

<br>

Birth: <form:inputpath="birth"/>

<form:errorspath="birth"></form:errors>

<br>

Salary: <form:inputpath="salary"/>

<br>

<inputtype="submit"value="Submit"/>

</form:form>



 

 

 

 

 

 




https://www.xamrdz.com/web/2rf1937783.html

相关文章: