第十一章:表单标签——深入浅出学Spring Web MVC

配套视频课程地址:  http://sishuok.com/product/701
 
配套视频PPT下载地址:  http://sishuok.com/forum/posts/list/6981.html
目录:
form标签
要使用Spring Web MVC的表单标签,需要在页面引入,示例如下:
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
 
form标签
它会自动的绑定来自Model中的一个属性值到当前form对应的实体对象,默认是command属性,这样我们就可以在form表单体里面方便的使用该对象的属性了;
通常我们都会指定commandName或modelAttribute 属性,来指定使用绑定到的JavaBean的名称,这两个属性功能基本一致。
示例如下:
<form:form action=  "/mvcexample/add" method=  "post" modelAttribute=  "um">
注意: modelAttribute所指定的Bean的名字,一定要在request等属性里面有,否则页面会报错的
 
input标签
input标签会被渲染为一个type为text的普通Html input标签。使用SpringMVC的input标签的唯一作用就是它能绑定表单数据。SpringMVC表单标签最大的好处就是它支持数据绑定,当我们的表单标签不需要绑定的数据的时候,我们应该使用普通的Html标签。
hidden标签
用法跟input标签一样,也能绑定表单数据,只是它生成的是一个隐藏域。
password标签
password标签将会被渲染为一个type为password的普通HTML input标签
textarea标签
extarea标签将被渲染为普通HTML textarea标签
checkbox标签
checkbox标签会被渲染为一个type为checkbox的普通HTML input标签。checkbox标签也是支持绑定数据的。checkbox标签的选中与否状态是根据它绑定的值来判断的
当checkbox绑定的是一个boolean数据的时候,那么checkbox的状态跟该boolean数据的状态是一样的,即true对应选中,false对应不选中
 
绑定列表数据,如数组、List和Set 等的时候,是当checkbox标签的value在我们绑定的列表数据中存在的时候该checkbox将为选中状态 ,示例如下:
1:假如在UserModel中有如下数据:
private List<String> deps = new ArrayList<String>();
//省略对应的getter/setter
2:在Controller的方法中,给deps赋值,示例如下:
@RequestMapping("/toAdd")
public String toAdd(@ModelAttribute("um") UserModel um){
um.getDeps().add("dep1");
um.getDeps().add("dep2");
return "user/add";
}
 
3:页面上:
<form:checkbox path=  "deps" value=  "dep1"/>dep1
<form:checkbox path=  "deps" value=  "dep2"/>dep2
<form:checkbox path=  "deps" value=  "dep3"/>dep3
 
 
结果:那么页面上的dep1和dep2会选中
当checkbox绑定的是一个Object数据的时候,会拿所绑定对象数据的toString结果跟当前checkbox的value进行比较,如果能够进行匹配则该checkbox将为选中状态。
 
checkboxes标签
n用来根据给定的数据,生成一组多选框,必须指定path和items
1:path:所绑定对象的属性,也就是用来判断是否被选中的项
2:items:用来展现的项,也就是总共有多少项
1:比如在UserModel里面添加如下的属性:
private List<String> allDeps = new ArrayList<String>();
private List<String> deps = new ArrayList<String>();
//省略对应的getter/setter
2:在Controller方法里面:
um.getAllDeps().add("dep1");
um.getAllDeps().add("dep2");
um.getAllDeps().add("dep3");
um.getAllDeps().add("dep4");
//
um.getDeps().add("dep1");
um.getDeps().add("dep2");
3:在页面上
<form:checkboxes items="${um.allDeps}" path="deps"/>
结果是:出现4个部门,但是dep1和2选中
n如果要想最后生成的chechkbox的表现值和value不一样,可以使用map,那么此时会根据Map的key进行判断是否选中
n
1:比如在UserModel里面添加如下的属性:
private Map<String,String> allDeps = new HashMap<String,String>();private List<String> deps = new ArrayList<String>();
//省略对应的getter/setter
2:在Controller方法里面:
um.getAllDeps().put  ("d1", "dep1");
um.getAllDeps().put("d2", "dep2");
um.getAllDeps().put("d3", "dep3");
um.getAllDeps().put("d4", "dep4");
///
um.getDeps().add  ("d1");
um.getDeps().add("d2");
3:在页面上
<form:checkboxes items="${um.allDeps}" path="deps"/>
结果是:出现4个部门,但是dep1和2选中
form下的其它标签
nradiobutton和radiobuttons标签
基本等同于checkbox和checkboxes标签的用法
nselect标签
类似于前面的checkboxes的使用,同样指定path和items,使用前面的数据示例:
<form:select path="deps" items="${um.allDeps}" multiple="false"></form:select>
1:如果绑定的items数据是map的话,那么key作为option的value,而map的值作为option显示的数据
2:如果集合数据又是一个对象的话,可以通过指定属性itemLabel和itemValue来指定将用于呈现的option Label和Value
3:如果集合中是其它数据的话,那就是既做option的value,也做option的显示数据
noption标签
如果select标签没有指定items属性,那么可以使用option标签来指定选项。其用法基本类似于HTML的option标签,就是多个数据绑定的功能,也就是能根据具体值来判断是否需要选中这项。
noptions标签
如果select标签没有指定items属性,那么可以使用options标签来指定选项。
其用法基本类似于指定select标签的items属性,区别是:
1:select标签指定items属性,会忽略所有标签体内写的option
2:options标签前后均可以再手工添加option,比如:
<form:select path="deps"  multiple="false">
<option value="1">请选择</option>
<form:options items="${um.allDeps}"/>
</form:select>
nerrors标签
用来展现Errors对象中包含的错误信息。通过errors标签的path属性来绑定一个错误信息。可以通过path属性来展现两种类型的错误信息。
1:所有的错误信息,这个时候path的值应该置为“*”
2:当前对象的某一个域的错误信息,这个时候path应为所需展现的域的名称
 
精品视频课程推荐

Weblogic实战视频教程 
WebLogic基础知识:WebLogic基本概念、正确安装WebLogic、建域、应用部署于JDBC选择、对WebLogic的监控和日志查看、集群的高可用性;课程目标:彻底掌握WebLogic的基本概念,在理解基本概念的基础上做到正确的安装WebLogic,根据不同的需求创建域,合理选择应用部署和JDBC配置。熟练掌握WebLogic的console监控,了解各种性能和运行指标,以及对监控结果的分析,运用集群的高可用性,对集群架设。

深入浅出学Spring Web MVC视频教程 
系统、完整的学习Spring Web MVC开发的知识。包括:Spring Web MVC入门;理解DispatcherServlet;注解式控制器开发详解;数据类型转换;数据格式化;数据验证; 拦截器;对Ajax的支持;文件上传下载;表单标签等内容;最后以一个综合的CRUD带翻页的应用示例来综合所学的知识

深入浅出学Spring Data JPA视频教程 
系统、完整的学习Spring Data JPA开发的知识。包括:Spring Data JPA入门;JpaRepository基本功能 ;JpaRepository的查询;客户化扩展JpaRepository;Specifications查询。

高级软件架构师实战培训阶段一 
内容概述:本课程专注于构建:高可扩展性、高性能、大数据量、高并发、分布式的系统架构。 从零开始、全面系统、成体系的软件架构课程,循序渐进的讲述构建上述系统架构所需要的各种技术知识和技能。
技术要点: 1:构建基本的业务功能块,基于Maven+Git+Spring mvc+spring+mybatis+ehcache+mysql+X-gen代码生成
 2:高扩展性的分布式体系架构(基于Nginx+Varnish+Memcache+ActiveMQ) 
 3:NoSQL的合理使用和架构优化(基于MongoDB) 
 4:分布式文件存储和架构优化(基于MogileFS)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值