欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springmvc的@Validated注解使用

 更新時間:2019年12月19日 09:47:47   作者:changerzhuo  
這篇文章主要介紹了springmvc的@Validated注解使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 校驗的錯誤信息, 可以直接在bean屬性上配置, 也可以在properties中配置。

2. 將校驗器bean配置到注解驅(qū)動上

3. 在需要校驗的pojo前邊添加@Validated,在需要校驗的pojo后邊添加BindingResult bindingResult接收校驗出錯信息

注意:@Validated和BindingResult bindingResult是配對出現(xiàn),并且形參順序是固定的(一前一后)。

使用validated所需配置:

1. jar包


2. application.xml

 <!-- validated 校驗配置start -->
  <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" >
  	<!-- 提供檢驗機制的類: 此處用的而是Hibernate校驗器,但是跟Hibernate沒有關(guān)系 -->
  	<property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
  	<!-- 指定校驗的使用的資源文件, 如果不需要額外的錯誤配置文件,就不用配置該屬性,
  	 在配置文件中配置k-v的錯誤提示信息,如果不指定則使用默認(rèn)配置:classpath下的ValidationMessages.properties -->
  	<property name="validationMessageSource" ref="messoreSources" />
  </bean>
  <!-- 額外錯誤信息文件配置 -->
  <bean id="messoreSources" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!--   	錯誤信息資源文件, 不需要寫后綴, 默認(rèn)后綴為.properties -->
  	<property name="basenames">
  		<list>
  			<value>classpath:testErrMessages</value>
  		</list>
  	</property>
<!--   	錯誤信息文件編碼方式 -->
  	<property name="fileEncodings" value="utf-8" />
<!--   	錯誤信息文件緩存時間 -->
  	<property name="cacheSeconds" value="120" />
  </bean>
  <!-- validated 校驗配置end -->
  
  
  <!-- 注解驅(qū)動,替換處理器映射器、處理器適配器 -->
  <mvc:annotation-driven validator="validator" />

3. testErrMessage.properties文件

文件結(jié)構(gòu):


文件內(nèi)容:

4. bean的配置, 省略get/set方法

public class ValidBean {
     //直接配置錯誤信息
	@NotBlank(message="用戶名不能為空", groups= {UserGroup1.class})
	private String name;
	
	@Max(value=120, message="年齡最大為120")
	private Integer age;
	
	// 使用配置文件中的錯誤信息, properties中的key: message="{key}"。 {}:占位符
	@NotBlank(message="{validator.user.address}")
	private String address;
}

5. controller

@Controller
@RequestMapping("/test/")
public class ValidTestController {

	/**
	 * 
	 * @desc: 校驗沒有分組的屬性
	 * @auth: zona
	 * 2017年2月19日 下午2:35:42 
	 * @param bean
	 * @param bindingResult
	 * @return
	 */
	@RequestMapping("valid")
	@ResponseBody
	public Result testValid(@Validated ValidBean bean, BindingResult bindingResult) {
		Result result = new Result();
		Map retMap = new HashMap();
		StringBuilder sb = new StringBuilder();
		if(bindingResult.hasErrors()) {
			List<ObjectError> errors = bindingResult.getAllErrors();
			for (ObjectError err : errors) {
				sb.append(err.getDefaultMessage()+"; ");
			}
			result.setErrInfo(sb.toString());
			result.setErrNo(1);
			 return result;
		}
		retMap.put("bean", bean);
		result.success();
		result.setData(retMap);
		return result;
	}
	
	/**
	 * 
	 * @desc: 僅對屬于userGroup組的屬性進行校驗
	 * @auth: zona
	 * 2017年2月19日 下午2:37:03 
	 * @param bean
	 * @param bindingResult
	 * @return
	 */
	@RequestMapping("group/valid")
	@ResponseBody
	public Result testGroupValid(@Validated(value=UserGroup1.class) ValidBean bean, BindingResult bindingResult) {
		Result result = new Result();
		Map retMap = new HashMap();
		StringBuilder sb = new StringBuilder();
		if(bindingResult.hasErrors()) {
			List<ObjectError> errors = bindingResult.getAllErrors();
			for (ObjectError err : errors) {
				sb.append(err.getDefaultMessage()+"; ");
			}
			result.setErrInfo(sb.toString());
			result.setErrNo(1);
			 return result;
		}
		retMap.put("bean", bean);
		result.success();
		result.setData(retMap);
		return result;
	}
}

測試結(jié)果:

只校驗沒有分組的屬性


校驗UserGroup1組的屬性


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

相關(guān)文章

  • Java AQS中閉鎖CountDownLatch的使用

    Java AQS中閉鎖CountDownLatch的使用

    CountDownLatch 是一個同步工具類,用來協(xié)調(diào)多個線程之間的同步,它能夠使一個線程在等待另外一些線程完成各自工作之后,再繼續(xù)執(zhí)行。被將利用CountDownLatch實現(xiàn)網(wǎng)絡(luò)同步請求,異步同時獲取商品信息組裝,感興趣的可以了解一下
    2023-02-02
  • Java中HashSet、LinkedHashSet和TreeSet區(qū)別詳解

    Java中HashSet、LinkedHashSet和TreeSet區(qū)別詳解

    這篇文章主要介紹了Java中HashSet、LinkedHashSet和TreeSet區(qū)別詳解,如果你需要一個訪問快速的Set,你應(yīng)該使用HashSet,當(dāng)你需要一個排序的Set,你應(yīng)該使用TreeSet,當(dāng)你需要記錄下插入時的順序時,你應(yīng)該使用LinedHashSet,需要的朋友可以參考下
    2023-09-09
  • Java使用Zxing二維碼生成的簡單示例

    Java使用Zxing二維碼生成的簡單示例

    ZXing是一個開源的,用Java實現(xiàn)的多種格式的1D/2D條碼圖像處理庫,下面這篇文章主要給大家介紹了關(guān)于Java使用Zxing二維碼生成的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 關(guān)于微服務(wù)使用Dubbo設(shè)置的端口和server.port的區(qū)別

    關(guān)于微服務(wù)使用Dubbo設(shè)置的端口和server.port的區(qū)別

    這篇文章主要介紹了關(guān)于微服務(wù)使用Dubbo設(shè)置的端口和server.port的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 在Eclipse IDE使用Gradle構(gòu)建應(yīng)用程序(圖文)

    在Eclipse IDE使用Gradle構(gòu)建應(yīng)用程序(圖文)

    這篇文章主要介紹了在Eclipse IDE使用Gradle構(gòu)建應(yīng)用程序(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Spring?Cloud?Alibaba負(fù)載均衡實現(xiàn)方式

    Spring?Cloud?Alibaba負(fù)載均衡實現(xiàn)方式

    這篇文章主要為大家介紹了Spring?Cloud?Alibaba負(fù)載均衡實現(xiàn)方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Java實現(xiàn)七牛云文件圖片上傳下載

    Java實現(xiàn)七牛云文件圖片上傳下載

    本文主要介紹了Java實現(xiàn)七牛云文件圖片上傳下載,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 如何使用Reactor完成類似Flink的操作

    如何使用Reactor完成類似Flink的操作

    這篇文章主要介紹了如何使用Reactor完成類似Flink的操作,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • Android實現(xiàn)兼容的水波紋效果

    Android實現(xiàn)兼容的水波紋效果

    Android的水波紋效果只有高版本才有,我們希望自己的應(yīng)用在低版本用低版本的陰影,而高版本用水波紋,這怎么做呢?下面一起來學(xué)習(xí)學(xué)習(xí)。
    2016-08-08
  • Java稀疏數(shù)組的應(yīng)用實踐

    Java稀疏數(shù)組的應(yīng)用實踐

    本文主要介紹了Java稀疏數(shù)組的應(yīng)用實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評論