springmvc校验,错误信息显示及数据回显
2017-11-18 14:48
537 查看
springmvc使用hibernate的校验框架validation进行校验
校验思路:
页面提交请求的参数,请求到controller方法中,使用validation进行校验。如果校验出错,将错误信息展示到页面。
1, 环境准备
引入hibernate的校验框架validation所需要jar包
2, 配置文件
3, pojo中添加校验规则
4, 编写校验信息文件messages.properties
5, controller中捕获错误信息
6, 页面显示错误信息
前台进行错误显示,可以使用springmvc自带的标签库,我这里混用了sf标签和html标签,做法不太可取,容易乱。
如果我们要使用@Validate进行验证,并且需要在前台通过sf:error来显示错误信息,那么我们一定要用sf:form,并且设置modelAttribute=”customer”,它的属性值,必须为小写的类型名 ,表单中的其他标签是否使用 sf: 都可以。
7,页面显示如下
校验思路:
页面提交请求的参数,请求到controller方法中,使用validation进行校验。如果校验出错,将错误信息展示到页面。
1, 环境准备
引入hibernate的校验框架validation所需要jar包
2, 配置文件
<!-- validator校验器注入到适配器 --> <mvc:annotation-driven conversion-service="conversionService" validator="validator"></mvc:annotation-driven> <!-- 校验器 --> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <!-- hibernate校验器 --> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property> <!-- 指定存放校验信息的文件 --> <property name="validationMessageSource" ref="messageSource"></property> </bean> <!-- 校验信息文件 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" name="messageSource"> <!-- 文件路径 --> <property name="basenames"> <list> <value>classpath:messages</value> </list> </property> <!-- 资源文件编码格式 --> <property name="defaultEncoding" value="UTF-8"></property> <!-- 资源文件内容缓存时间 --> <property name="cacheSeconds" value="120"></property> </bean>
3, pojo中添加校验规则
package ssm.po; import javax.validation.constraints.Size; import org.hibernate.validator.constraints.NotBlank; public class Customer { private Integer cid; @NotBlank(message="{customer.name.valid}") private String name; @Size(min=11,max=11,message="{customer.phone.valid}") private String phone; }
4, 编写校验信息文件messages.properties
NotNull.date=日期不能为空 customer.name.valid=请输入客户姓名 customer.phone.valid=请输入有效的手机号
5, controller中捕获错误信息
//在需要校验的pojo前边添加@Validated,在需要校验的pojo后边添加BindingResult bindingResult接收校验出错信息 //注意:@Validated和BindingResult bindingResult是配对出现,并且形参顺序是固定的(一前一后)。 //@ModelAttribute("customer")可以进行数据回显,也就是数据提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面。 @RequestMapping("/add") public String add(@Validated @ModelAttribute("customer") Customer customer,BindingResult bindingResult){ if(bindingResult.hasErrors()){ // List<FieldError> errors=bindingResult.getFieldErrors(); // model.addAttribute("customer", customer); return "customer/add"; } customerService.add(customer); return "redirect:list"; }
6, 页面显示错误信息
前台进行错误显示,可以使用springmvc自带的标签库,我这里混用了sf标签和html标签,做法不太可取,容易乱。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@taglib prefix="sf" uri="http://www.springframework.org/tags/form"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <sf:form action="${pageContext.request.contextPath }/customer/add" method="post" modelAttribute="customer"> <table> <TR> <td>客户姓名:</td> <td> <INPUT name="name" value="${customer.name }">*<sf:errors path="name"></sf:errors> </td> </TR> <TR> <td>联系方式:</td> <td> <INPUT name="phone" value="${customer.phone }">*<sf:errors path="phone"></sf:errors> </td> </TR> <tr> <td rowspan=2> <INPUT class=button id=sButton2 type=submit value=" 添加 " name=sButton2> </td> </tr> </sf:form> </table> </body> </html>
如果我们要使用@Validate进行验证,并且需要在前台通过sf:error来显示错误信息,那么我们一定要用sf:form,并且设置modelAttribute=”customer”,它的属性值,必须为小写的类型名 ,表单中的其他标签是否使用 sf: 都可以。
7,页面显示如下
相关文章推荐
- springMVC高级部分(数据校验,数据错误回显(自定义格式错误显示),拦截器,异常处理,文件上传,文件下载,springmvc运行流程以及springmvc和struts2对比)
- SpringMVC——类型转换和格式化、数据校验、客户端显示错误消息
- java web从零单排第十二期《struts2》数据校验显示出错信息
- Struts2第十篇【数据校验、代码方式、XML配置方式、错误信息返回样式】
- HRESULT 数据类型和显示错误信息
- angular 表单校验显示验证失败的错误信息
- SpringMVC之国际化资源显示错误信息
- SpringMVC和Mybatis(三)pojo参数绑定、服务端校验、分组校验、数据回显
- struts2 校验框架 错误信息自定义显示
- spring-mvc整合freemarker并在ftl模版中显示服务端校验的错误信息,JSR303或者JSR349
- Struts2第十篇【数据校验、代码方式、XML配置方式、错误信息返回样式】
- SpringMVC和FreeMarker整合Hibernate-validator在页面渲染校验错误信息
- springMVC 校验时,CustomValidationMessages.properties中的错误提示信息的中文乱码 问题
- Springmvc学习笔记(4)之复杂参数类型绑定、校验、数据回显和异常处理
- SpringMVC结合Validation api 和Hibernate validation进行校验不提示验证错误信息
- spring-mvc整合freemarker并在ftl模版中显示服务端校验的错误信息,JSR303或者JSR349
- SSH笔记-类型转换器和错误信息显示、复杂属性、批量更新模型数据
- 在JSP页面显示页面校验的错误信息
- [Step By Step]SAP Visual Intelligence数据操作、地图信息显示(SAP HANA中提取数据)
- SpringMVC之数据的正确性和合法性校验