最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解在Spring MVC中使用注解的方式校驗(yàn)RequestParams

 更新時間:2017年03月08日 17:18:59   作者:竹山一葉  
本篇文章主要介紹了詳解在Spring MVC中使用注解的方式校驗(yàn)RequestParams ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

概述

Spring MVC支持Bean Validation,通過這個驗(yàn)證技術(shù),可以通過注解方式,很方便的對輸入?yún)?shù)進(jìn)行驗(yàn)證,之前使用的校驗(yàn)方式,都是基于Bean對象的,但是在@RequestParam中,沒有Bean對象,這樣使得校驗(yàn)無法進(jìn)行,可以通過使用@Validated注解,使得校驗(yàn)可以進(jìn)行。

校驗(yàn)bean對象

一般校驗(yàn)bean對象,為了可以自動的校驗(yàn)屬性,可以通過兩步解決:

一、聲明對象

package com.github.yongzhizhan.draftbox.model;

import javax.validation.constraints.Size;

/**
 * 帶驗(yàn)證的對象
 * @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();
}

校驗(yàn)RequestParams

使用校驗(yàn)bean的方式,沒有辦法校驗(yàn)RequestParam的內(nèi)容,一般在處理Get請求的時候,會使用下面這樣的代碼:

@ResponseBody@RequestMapping(value = "validString", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public String validString(
    @RequestParam(value = "str", defaultValue = "")
    String vStr){

  return vStr;
}

使用@Valid注解,對RequestParam對應(yīng)的參數(shù)進(jìn)行注解,是無效的,需要使用@Validated注解來使得驗(yàn)證生效。操作步驟如下:

一、聲明錯誤處理類

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 {
  @Bean
  public 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并加上校驗(yàn)注解

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;
  }
}

代碼:spring-mvc-validator_jb51.rar

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 集合框架及背后的數(shù)據(jù)結(jié)構(gòu)

    集合框架及背后的數(shù)據(jù)結(jié)構(gòu)

    本文主要介紹了Java的集合框架Java?Collection?Framework,接口interface以及背后的數(shù)據(jù)結(jié)構(gòu),感興趣的同學(xué)可以閱讀參考
    2023-03-03
  • Hibernate的各種保存方式的區(qū)別詳解

    Hibernate的各種保存方式的區(qū)別詳解

    今天小編就為大家分享一篇關(guān)于Hibernate的各種保存方式的區(qū)別詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 你真的理解Java中的ArrayList嗎

    你真的理解Java中的ArrayList嗎

    這篇文章主要給大家介紹了關(guān)于Java中ArrayList的相關(guān)資料,ArrayList就是傳說中的動態(tài)數(shù)組,用MSDN中的說法,就是Array的復(fù)雜版本,需要的朋友可以參考下
    2021-08-08
  • MyBatis代碼自動生成器Mybatis-Generator的使用詳解

    MyBatis代碼自動生成器Mybatis-Generator的使用詳解

    本文詳細(xì)介紹如何在SpringBoot項(xiàng)目中使用MyBatis-Generator進(jìn)行代碼生成,包括配置文件的添加、POM依賴配置、運(yùn)行配置等步驟,通過自動生成代碼,可以簡化MyBatis的繁瑣配置和SQL編寫,提高開發(fā)效率,注意要考慮MySQL版本兼容性,以及確保路徑配置正確
    2024-10-10
  • Java對象流實(shí)例代碼

    Java對象流實(shí)例代碼

    這篇文章主要介紹了Java對象流實(shí)例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 淺入淺出的講解Spring循環(huán)依賴問題

    淺入淺出的講解Spring循環(huán)依賴問題

    循環(huán)依賴其實(shí)就是循環(huán)引用,也就是兩個或則兩個以上的bean互相持有對方,最終形成閉環(huán),下面這篇文章主要給大家介紹了關(guān)于Spring循環(huán)依賴問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • FeignMultipartSupportConfig上傳圖片配置方式

    FeignMultipartSupportConfig上傳圖片配置方式

    這篇文章主要介紹了FeignMultipartSupportConfig上傳圖片配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java實(shí)現(xiàn)圖書借閱系統(tǒng)

    Java實(shí)現(xiàn)圖書借閱系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖書借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Spring Boot2.0 @ConfigurationProperties使用詳解

    Spring Boot2.0 @ConfigurationProperties使用詳解

    這篇文章主要介紹了Spring Boot2.0 @ConfigurationProperties使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Java與C++實(shí)現(xiàn)相同的MD5加密算法簡單實(shí)例

    Java與C++實(shí)現(xiàn)相同的MD5加密算法簡單實(shí)例

    下面小編就為大家?guī)硪黄狫ava與C++實(shí)現(xiàn)相同的MD5加密算法簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09

最新評論

霍山县| 天柱县| 河池市| 清徐县| 博客| 昌平区| 齐河县| 措勤县| 贵德县| 全州县| 米林县| 湖南省| 洛阳市| 卫辉市| 静海县| 桃江县| 澜沧| 衢州市| 东兴市| 达尔| 方正县| 巢湖市| 庆云县| 来安县| 青州市| 浏阳市| 兴山县| 福贡县| 安仁县| 海阳市| 屏南县| 涿鹿县| 阿尔山市| 和静县| 石柱| 宜川县| 泉州市| 台湾省| 永修县| 台江县| 吴旗县|