Spring MVC 数据绑定和表单标签库
数据绑定是将用户输入绑定到领域模型的一种特性。作用是将 POJO 对象的属性值与表单组件的内容绑定。
数据绑定的好处:
1. 类型总是为 String 的 HTTP 请求参数,可用于填充不同类型的对象属性。
2. 当输入验证失败时,会重新生成一个 HTML 表单。
为了高效的使用数据绑定,还需要 Spring 的表单标签库。表单标签库中包含了可以用在 JSP 页面中渲染 HTML 元素的标签,为了能够使用这些标签,必须在 JSP 页面的开头处声明这个 taglib 指令
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
表单标签库中的标签 每个标签都有相应的属性
可以在下载的 Springframework 中找到详细说明

标签 // 描述
form // 渲染表单元素
input // 渲染 <input type="text" /> 元素
password // 渲染 <input type="text" /> 元素
hidden // 渲染 <input type="hidden" /> 元素
textarea // 渲染 textarea 元素
checkbox // 渲染一个 <input type="checkbox" /> 元素
checkboxes // 渲染多个 <input type="checkbox" /> 元素
radiobutton // 渲染一个 <input type="radio" /> 元素
radiobuttons // 渲染多个 <input type="radio" /> 元素
select // 渲染一个选择元素
option // 渲染一个可选元素
options // 渲染一个可选元素列表
erros // 在 span 元素中渲染字段错误
form 标签
form 标签用于渲染 HTML 表单,form 标签必须利用渲染表单输入字段的其他任意标签。
1. 该标签会自动绑定来自 Model 中的一个属性值到当前 form 对应的实体对象,默认是 command 属性,此时就可以在 form 表单提里面方便的使用该对象的属性了。
2. 该标签我们在提交表单的时候使用除 GET、POST 之外的其他方法进行提交,包括 DELETE、PUT 等
一般而言仍然需要使用 action 和 method 属性,这两个属性属于 HTML 属性。
acceptCharset //
cssClass //
cssStyle //
htmlEscape //
modleAttribute // 显示 corm backing object 的模型属性名称,默认为 command
input 标签
cssClass //
cssStyle //
cssErrorClass //
htmlEscape //
path // 要绑定的属性路径
例如,下面这个 input 标签被绑定到 form backing object 的 isbn 属性
<form:input id="isbn" path="isbn" cssErrorClass="errorBox" />
将被渲染成
<input type="text" id="isbn" name="isbn" />
cssErrorClass 属性不起作用,除非 isbn 属性中有输入验证错误,并且采用同一个表单重新显示用户输入,此时会被渲染成
<input type="text" id="isbn" name="isbn" class="errorBox" />
password 标签
cssClass //
cssStyle //
cssErrorClass //
htmlEscape //
path // 要绑定的属性路径
showPassword // 表示是否应该显示或遮盖密码,默认为 false
<form:password id="pwd" path="password" cssClass="normal" />
hidden 标签
hidden 标签与 input 标签相似,只不过没有可是的外观,因此不支持 cssClass 和 cssStyle 属性
htmlEscape //
path //
<form:hidden path="productId" />
textarea 标签
textarea 基本上就是一个支持多行输入的 input 元素
cssClass //
cssStyle //
cssErrorClass //
htmlEscape //
path //
下面的 textarea 标签就是绑定到 form backing object 的 note 属性
<form:textarea path="note" tabindex="4" rows="5" cols="80" />
checkbox 标签
cssClass //
cssStyle //
cssErrorClass //
htmlEscape //
label //
path //
<form:checkbox path="outOfStock" value="Out Of Stock" />
checkboxes 标签
cssClass //
cssStyle //
cssErrorClass //
delimiter //
element //
htmlescape //
items // 用于生成 input 元素的对象的 Collection、Map 或者 Array
itemLabel //
itemValue //
path //
下面的 checkboxes 标签将 model 属性 categoryList 的内容渲染为复选框。checkboxes 标签允许进行多个选择
<form:checkboxes path="category" items="${categoryList}" />
radiobutton 标签
cssClass //
cssStyle //
cssErrorClass //
htmlEscape //
label //
path //
下面的 radiobutton 标签绑定到 newsletter 属性
Computing Now <form:radiobutton path="newsletter" value="Computing Now" /> <br />
Modern Health <form:radiobutton path="newslatter" value="Modern Health" />
radionbuttons 标签
cssClass //
cssStyle //
cssErrorClass //
delimiter //
element //
htmlEscape //
items //
itemLabel //
itemValue //
path //
下面的 radiobuttons 标签将 model 属性 categoryList 的内容渲染为单选按钮。每次只能选择一个单选按钮:
<form:radiobuttons path="category" items="${categoryList}" />
select 标签
cssClass //
cssStyle //
cssErrorClass //
htmlEscape //
items //
itemLabel //
itemValue //
path //
items 属性特别有用,因为它可以绑定到对象的 Collection、Map、Array,为 select 元素生成选项。
<form:select id="category" path="category.id" items="${categories}" itemLabel="name" itemValue="id" />
option 标签
cssClass //
cssStyle //
cssErrorClass //
htmlEscape //
<form:select id="category" path="category.id" items="${categories}" itemLabel="name" itemValue="id" >
<option value="0"> --Please select -- </option>
</form:select>
options 标签
cssClass //
cssStyle //
cssErrorClass //
htmlEscape //
items //
itemLabel //
itemValue //
errors 标签
cssClass //
cssStyle //
delimiter //
element //
htmlescape //
path //
Spring MVC 数据绑定和表单标签库的更多相关文章
- spring mvc数据绑定与表单标签库
Book类为 package org.shaoxiu; public class Book { private String id; private String name; public Book( ...
- 关于Spring MVC中的表单标签库的使用
普通的MVC设计模式中M代表模型层,V代表视图层,C代表控制器,SpringMVC是一个典型的MVC设置模式的框架,对于视图和控制器的优化很多,其中就有与控制器相结合的JSP的表单标签库. 我们先简单 ...
- SpringMVC:学习笔记(5)——数据绑定及表单标签
SpringMVC——数据绑定及表单标签 理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 按照我们以往所学,如果要获取请求的所有参数 ...
- springmvc表单标签库的使用
springmvc中可以使用表单标签库,支持数据绑定,用来将用户输入绑定到领域模型. 例子来源<Servlet.JSP和SpringMVC学习指南> 项目代码 关键代码及说明 bean对象 ...
- spring mvc:练习:表单验证(javaConfig配置和注解)
使用Spring表单标签, 表单验证使用 JSR303 的验证注解,hibernate-validators,提供了使用MessageSource和访问静态资源(如CSS,JavaScript,图片) ...
- Spring MVC实现防止表单重复提交(转)
Spring MVC拦截器+注解方式实现防止表单重复提交
- Spring mvc之提交表单
表单内容: <body> <form action="user/login"> <table> <tr> <td>用户名 ...
- Spring MVC(十)--通过表单序列化传递参数
通过表单序列化传递参数就是将表单数据转化成字符串传递到后台,序列化之后参数请求变成这种模式param1=value1&¶m2=value2,下面用代码实现. 1.创建表单 &l ...
- Spring MVC中 提交表单报错400
背景: 在写SpringMVC表单提交的代码的时,在最后点击提交的时候总是会出现400的错误 原因: 主要原因就是表单提交的数据和对应实体类的属性无法完全匹配 解决方案: 查看我们提交的数据是否完全和 ...
随机推荐
- SAP FI模块常用事务代码
F.52 G/L: Acct Bal.Interest Calculation 总帐:计算科目余额利息 F-06 Post Incoming Payments 收款记帐 F-07 ...
- Ubuntu下Git从搭建到使用详解
Ubuntu下Git从搭建到使用详解 一.git的搭建 (1).sudo apt-get update (2).sudo apt-get -y install git 符:安装最新版本方法: add- ...
- 1.3.8、CDH 搭建Hadoop在安装之前(端口---Apache Flume和Apache Solr使用的端口)
Apache Flume和Apache Solr使用的端口 Apache Flume用于与Apache Solr通信的端口可能会有所不同,具体取决于您的配置以及是否使用安全性(例如,SSL).使用Fl ...
- Windows 2012设置允许单个用户连接多个会话的方法
WINDOWS 2012 服务器默认只允许单个用户连接一个远程桌面会话,如果已有连接登陆,另外的连接再登陆会踢掉之前的连接.如果需要两个远程桌面同时连接 找到:HKEY_LOCAL_MACHINE\S ...
- elastic search文档详解
在elastic search中文档(document)类似于关系型数据库里的记录(record),类型(type)类似于表(table),索引(index)类似于库(database). 文档一定有 ...
- day27 异常处理 和 网络协议
元类补充 class MyMeta(type): # 用于新建类对象 def __new__(cls,*args,**kwargs) print(MyMeta) print(*args) # 调用ty ...
- Hibernate框架学习笔记
Hibernate 是一个 JDO( Java Data Objects)工具.它的工作原理是通过文件把值对象(Java对象)和 数据库表之间建立起一个映射关系,还提供数据查询和获取数据的方法. ...
- Error in building opencv with ffmpeg
I installed ffmpeg according to this article. ffmpeg installation was ok. Now I build opencv with ff ...
- NumPy 迭代数组
NumPy 迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用 arange() ...
- mysql中创建event定时任务
从网上借鉴大神的. use onlinexam; -- 查看event事件是否开启 show variables like '%sche%'; -- 开启event事件 (非常重要) set glo ...