【FunnyBear的Java之旅 - Spring篇】Spring表单验证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【FunnyBear的Java之旅 - Spring篇】Spring表单验证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3239字,纯文字阅读大概需要5分钟。
内容图文
尝试对Spring提供的表单进行了验证
1. 创建表单
在jsp页面中添加如下表单。其中action对应我们准备的Controller,commandName用于指定在pageContext中表单所对应的对象。Spring会自动把表单数据填充到对象中。sf:input和sf:error的path对应对象的属性。
< %@ taglib prefix ="sf" uri ="http://www.springframework.org/tags/form" % >
< sf:form method ="post" action ="${pageContext.request.contextPath}/doCreate" commandName ="user" > < table class ="formTable" > < tr > < td class ="label" >Name:</td><td><sf:input name="name" path="name" type="text"></sf:input><br /><sf:errors path="name" cssClass="error"></sf:errors></td></tr><tr><td class="label">Email:</td><td><sf:input name="email" path="email" type="text"></sf:input><br /><sf:errors path="email" cssClass="error"></sf:errors></td></tr><tr><td></td><td><input value="Create user" type="submit"></input></td></tr></table></sf:form>
2. 添加Controller方法
当访问表单所在页面时,我们需要向pageContext中添加一个与form commandName相对应的对象。
@RequestMapping("/createUser") public String createUser(Model model) { model.addAttribute("user", new User()); return "createUser"; }
@Valid表示我们要对从表单传入的user对象进行校验,其结果会被填充到BindingResult对象里,sf:error会从BindingResult对象里,取到相应的错误信息,进行显示。
@RequestMapping(value="/doCreate", method=RequestMethod.POST) public String doCreate(Model model, @Valid User user, BindingResult result) { if(result.hasErrors()){ return "createUser"; } else{ usersService.createUser(user); return "userCreated"; } }
3. 在User类中添加检验
校验主要通过标注实现,为此我们引用validation-api-1.1.0.Final.jar和Hibernate的validator。在Maven项目的pom文件中添加如下依赖
< dependency > < groupId >javax.validation</groupId><artifactId>validation-api</artifactId><version>1.1.0.Final</version></dependency><dependency><groupId>commons-validator</groupId><artifactId>commons-validator</artifactId><version>1.5.1</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate</artifactId><version>3.5.4-Final</version><type>pom</type></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.0.1.Final</version></dependency>
在字段上添加校验条件
package com.funnybear.springmvc.dao; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; public class User { @Size(min=5, max=100, message="Name must be between 5 and 100 characters.") private String name; @NotNull private String email; public String getName() { return name; } publicvoid setName(String name) { this.name = name; } public String getEmail() { return email; } publicvoid setEmail(String email) { this.email = email; } public User() { } public User(String name, String email) { super(); this.name = name; this.email = email; } @Override public String toString() { return "User [name=" + name + ", email=" + email + "]"; } }
这样在提交的时候就能顺利显示校验结果了。
问题:Hibernate类库没有在代码被直接引用,但缺少它,校验结果就无法显示,需要进一步学习。
原文:http://www.cnblogs.com/funnybear/p/5931374.html
内容总结
以上是互联网集市为您收集整理的【FunnyBear的Java之旅 - Spring篇】Spring表单验证全部内容,希望文章能够帮你解决【FunnyBear的Java之旅 - Spring篇】Spring表单验证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。