欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 前端技术 > javascript >内容正文

javascript

在spring mvc中使用注解的方式校验requestparams -凯发k8官方网

发布时间:2024/10/12 javascript 32 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 在spring mvc中使用注解的方式校验requestparams 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

概述

  spring mvc支持bean validation,通过这个验证技术,可以通过注解方式,很方便的对输入参数进行验证,之前使用的校验方式,都是基于bean对象的,但是在@requestparam中,没有bean对象,这样使得校验无法进行,可以通过使用@validated注解,使得校验可以进行。

校验bean对象

  一般校验bean对象,为了可以自动的校验属性,可以通过两步解决:

一、声明对象

package com.github.yongzhizhan.draftbox.model;import javax.validation.constraints.size;/*** 带验证的对象* @author zhanyongzhi*/public class foo {private string validstring;@size(min = 1, max = 5)public string getvalidstring() {return validstring;}public void setvalidstring(final string vvalidstring) {validstring = vvalidstring;} }

二、通过@valid注解使用对象

@responsebody@requestmapping(value = "validobject", method = requestmethod.post) @responsestatus(httpstatus.ok) public string validobject(@requestbody()@valid foo vfoo, bindingresult vbindingresult){return vfoo.getvalidstring(); }

校验requestparams

  使用校验bean的方式,没有办法校验requestparam的内容,一般在处理get请求的时候,会使用下面这样的代码:

@responsebody@requestmapping(value = "validstring", method = requestmethod.get) @responsestatus(httpstatus.ok) public string validstring(@requestparam(value = "str", defaultvalue = "")string vstr){return vstr; }

  使用@valid注解,对requestparam对应的参数进行注解,是无效的,需要使用@validated注解来使得验证生效。操作步骤如下:

一、声明错误处理类

package com.github.yongzhizhan.draftbox.controller;import org.springframework.context.annotation.bean; import org.springframework.http.httpstatus; import org.springframework.stereotype.component; import org.springframework.validation.beanvalidation.methodvalidationpostprocessor; import org.springframework.web.bind.annotation.controlleradvice; import org.springframework.web.bind.annotation.exceptionhandler; import org.springframework.web.bind.annotation.responsebody; import org.springframework.web.bind.annotation.responsestatus;import javax.validation.validationexception;@controlleradvice @component public class globalexceptionhandler {@beanpublic methodvalidationpostprocessor methodvalidationpostprocessor() {return new methodvalidationpostprocessor();}@exceptionhandler@responsebody@responsestatus(httpstatus.bad_request)public string handle(validationexception exception) {system.out.println("bad request, " exception.getmessage());return "bad request, " exception.getmessage();} }

二、声明@validated并加上校验注解

package com.github.yongzhizhan.draftbox.controller;import com.github.yongzhizhan.draftbox.model.foo; import org.springframework.beans.factory.annotation.value; import org.springframework.http.httpstatus; import org.springframework.validation.bindingresult; import org.springframework.validation.annotation.validated; import org.springframework.web.bind.annotation.requestbody; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestmethod; import org.springframework.web.bind.annotation.requestparam; import org.springframework.web.bind.annotation.responsebody; import org.springframework.web.bind.annotation.responsestatus; import org.springframework.web.bind.annotation.restcontroller;import javax.validation.valid; import javax.validation.constraints.size;@restcontroller @suppresswarnings("unuseddeclaration") @validated public class indexcontroller {@responsebody@requestmapping(value = "validstring", method = requestmethod.get)@responsestatus(httpstatus.ok)public string validstring(@requestparam(value = "str", defaultvalue = "")@size(min = 1, max = 3)string vstr){return vstr;} }

代码

在github中查看完整代码

参考

bean validation 技术规范特性概述
validation, data binding, and type conversion


来源: http://www.cnblogs.com/xiaohunshi/p/5693449.html

来自为知笔记(wiz)

转载于:https://www.cnblogs.com/jeffen/p/6402475.html

总结

以上是凯发k8官方网为你收集整理的在spring mvc中使用注解的方式校验requestparams的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图