博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc - validation
阅读量:6693 次
发布时间:2019-06-25

本文共 1759 字,大约阅读时间需要 5 分钟。

  hot3.png

校验理解

一般是在前端使用js进行校验。而使用服务器端的校验,一般对安全性要求较高。

服务端校验

控制层:校验页面参数的合法性。这种校验不区分客户端的类型(浏览器,手机客户端、远程调用)

业务层:主要关键业务参数,仅仅限于service接口中的参数。

持久层:一般不进行校验。

#springmvc 校验

springmvc 使用hibernate 的校验框架validation (和 hibernate 没有任何关系)

校验思路

页面提交的参数,请求到controller方法中,使用validation进行校验校验,如果出错,将错误信息回显到页面上。

##具体需求 商品修改,添加校验,如果出错,在修改页面显示错误信息。

##jar 包

在maven中搜索hibernate-validator-4.3.0就ok,它会自动帮你下载其jar包,及相关依赖包。 hibernate-validator 的相关jar包

##代码实现

一、配置校验器 springmvc- servlet.xml中配置

CustomValidationMessages

二、校验器配置到处理器适配器中 springmvc-serlvet.xml中配置

三、在po类中x配置校验

@Size(min = 1,max = 20,message = "{items.name.length.error}")private String name;@NotNull(message = "{items.createtime.isNull}")private Date createtime;

四、创建 CustomValidationMessages.properties

#添加错误的校验信息提示items.name.length.error= 请输入1到20个字符items.createtime.isNull= 请输入商品的生产日期

五、捕获错误校验信息

//商品信息修改提交@RequestMapping(value=("/editItemsSubmit"),method = {RequestMethod.GET,RequestMethod.POST})public String editItemsSubmit(Model model, HttpServletRequest request, Integer id,                              @Validated ItemsCustom itemsCustom, BindingResult bindingResult)throws Exception {    if (bindingResult.hasErrors()) {        List
allErrors = bindingResult.getAllErrors(); for (ObjectError allError : allErrors) { System.out.println(allError.getDefaultMessage()); } model.addAttribute("allErrors", allErrors); return "items/editItems"; } ...}

注意:

处理器方法必须给定包含Errors的参数,这可以是Errors本身,也可以是它的子类BindingResult。

而且这个参数是必须紧挨着@Valid参数的,即必须紧挨着需要校验的参数,这就意味着我们有多少个@Valid参数就需要有多少个对应的Errors参数,它们是一一对应的。

转载于:https://my.oschina.net/lemos/blog/790794

你可能感兴趣的文章
我的友情链接
查看>>
apache虚拟主机的搭建
查看>>
【Linux系统安装】磁盘与分区的命名规则
查看>>
关于Android手势类GestureDetector类
查看>>
hadoop相关要点
查看>>
Cubieboard官方 GPIO驱动使用总结
查看>>
rman恢复数据库
查看>>
Struts2学习笔记(一)初步了解Struts2以及配置
查看>>
我的友情链接
查看>>
presto Resource Groups
查看>>
我的友情链接
查看>>
慢工出细活,Facebook点赞按钮设计中的门道
查看>>
思科路由器配置命令一览表
查看>>
Git 远程操作
查看>>
我的友情链接
查看>>
iostat命令解析
查看>>
linux Containers——试用lxc
查看>>
linux运维实战练习-2016年1月19日-2月3日课程作业(练习)安排
查看>>
行为型模式:中介者模式
查看>>
政府信息化建设重点——服务、多元化
查看>>