springMVC基于hibernate validator的表单验证示例

目前使用MVC架构的java Web框架比较多,其中使用spirngMVC已经占有了很大部分份额。通过最近几天的研究,对springMVC基于hibernate validator表单验证进行整理,方便日后查阅。

一、执行步骤:

1、引入hibernate validator的依赖jar包;

2、编写测试model对象;

3、使用注解对对象属性进行验证;

4、编写jsp文件;

5、后台编写验证结果。

二、具体实现:

1、本测试项目采用maven工程。在pom.xml文件中增加对validator.jar依赖的引入

		<!-- validator数据验证 -->
		<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
		<dependency>
		    <groupId>org.hibernate</groupId>
		    <artifactId>hibernate-validator</artifactId>
		    <version>5.2.4.Final</version>
		</dependency>

2、3、设置检测对象的属性:

public class Employee {

	//编码
	private int eId;
	//登录内网账号
	@NotEmpty(message="内网账号不能为空")
	private String ustcAccount;
	
	//姓名
	@NotEmpty(message="姓名不能为空")
	private String eName;
	
	//生日
	@DateTimeFormat(pattern="yyyy年MM月dd日")
	private Date birthday;
	//工作职称
	private String jobTitle;
      //省略其他属性值以及getters()/setters()方法
}

4、编写springMVC请求控制器:

注意:通过model.addAttribute的方式添加Employee对象,jsp可以通过employee获取到对象。

	@RequestMapping(value="/add", method=RequestMethod.GET)
	public String addPre(Model model){
		logger.info("---------->添加用户请求");
		Employee ee = new Employee();
		model.addAttribute(ee);//也可以使用 model.addAttribute("eee", ee),jsp文件需要使用eee
		return "user/addPre";
	}

5、jsp文件form表单编写:

5.1首先需要引入spring的form表单标签:

<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>

5.2编写form表单:

<sf:form modelAttribute="employee" action="add" method="post">
<sf:input id="ustcAccount" path="ustcAccount" class="form-control"
                                placeholder="请输入内网账号" />
<sf:errors path="ustcAccount"></sf:errors>


<sf:input id="eName" path="eName" class="form-control"
                                placeholder="请输入员工名字" />
<sf:errors path="eName"></sf:errors>

<button id="btn_add" class="btn btn-default" type="submit">保存添加</button>

注意:本项目使用bootstrap前端框架,如果没有使用此框架,可以将class/placeholder等省略。


6、提交后台验证:

@RequestMapping(value="/add", method=RequestMethod.POST)
	public String add(@Validated Employee ee,BindingResult br, Model model, RedirectAttributesModelMap modelMap){
		if(br.hasErrors()){
			logger.info("有错误");
                       //返回请求过来的页面,将验证不通过的结果一并返回到页面。注意:不能使用redirect的方式,否则前端收不到错误信息
                        return "user/addPre";
		}
		logger.info("------->用户信息:"+ee);
		userService.add(ee);
              //保存成功后,跳转到初始化界面
               return "redirect:init";
	}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值