当前位置:
ag凯发k8国际 >
前端技术
> javascript
>内容正文
javascript
在spring mvc中使用注解的方式校验requestparams -ag凯发k8国际
ag凯发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; (min = 1, max = 5)public string getvalidstring() {return validstring;}public void setvalidstring(final string vvalidstring) {validstring = vvalidstring;} }二、通过@valid注解使用对象
(value = "validobject", method = requestmethod.post) (httpstatus.ok) public string validobject( () foo vfoo, bindingresult vbindingresult){return vfoo.getvalidstring(); }校验requestparams
使用校验bean的方式,没有办法校验requestparam的内容,一般在处理get请求的时候,会使用下面这样的代码:
(value = "validstring", method = requestmethod.get) (httpstatus.ok) public string validstring( (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
总结
以上是ag凯发k8国际为你收集整理的在spring mvc中使用注解的方式校验requestparams的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: