10. JSR303验证

10. JSR303验证

	1. 引入验证依赖包
		classmate-1.3.3.jar
		hibernate-validator-5.4.0.Final.jar
		jboss-logging-3.3.0.Final.jar
		validation-api-1.1.0.Final.jar
	2.验证
		2.1先在要验证的实体上添加验证注解@Valid
			public User saveUser(@Valid User u) {
				
				return u;
			}
		2.2然后在实体的属性上对每一个属性进行验证
			public class User {
				private  int uid;
				@NotEmpty(message="用户名不能为空")
				private String uname;
				//@DateTimeFormat(pattern="yyyy-MM-dd")
				private Date date;
				@Length(min=3,max=6,message="密码长度介于3-6位")
				private String pwd;
				private String remark;
				private String hobbies;
				@NotEmpty(message="职位不能为空!")
				private List<Integer> jobs;
			}
		2.3然后在处理器方法中通过BindingResult接受验证后的错误信息,同时通过@ModelAttribute注解将实体对象以及验证后的错误信息返回到页面
			@RequestMapping("saveUser")
			public User saveUser(Model m,@ModelAttribute("user") @Valid User u,BindingResult br) {
				
				return u;
			}
		2.4在处理器方法中进行逻辑判断,验证没有错误则跳转到其他页面,有错误信息则转发到当前页面
			@RequestMapping("saveUser")
			public String saveUser(Model m,@ModelAttribute("user") @Valid User u,BindingResult br) {
				if (br.hasErrors()) {
					//有错误信息
					List<Work> wlist=new ArrayList<>();
					wlist.add(new Work(1, "项目经理"));
					wlist.add(new Work(2, "高级程序员"));
					wlist.add(new Work(3, "人事总监"));
					m.addAttribute("wlist", wlist);
					return "form";
				}
				return "main";
			}
		2.5在form.jsp显示错误信息通过<form:errors>标签 <form:errors path="属性名"></form:errors>
			<form:form action="saveUser" method="post" modelAttribute="user">
				姓名:<form:input path="uname"/>
				<form:errors path="uname"></form:errors><br>
				ID :<form:hidden path="uid"/><br>
				密码:<form:label path="pwd"></form:label>
				<form:password path="pwd" showPassword="true"/>
				<form:errors path="pwd"></form:errors><br>
				简述:<form:textarea path="remark"/><br>
				 爱好:<form:checkbox path="hobbies" value="1"/>聊天天1
					 <form:checkbox path="hobbies" value="2"/>聊天天2
				 	 <form:checkbox path="hobbies" value="3"/>聊天天3<br>
				职位: <form:checkboxes items="${wlist}" path="jobs" itemValue="wid" itemLabel="wname"/>
				<form:errors path="jobs"></form:errors><br>
				<form:button>保存</form:button>
			</form:form>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值