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

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的錯誤提示信息,如果不指定則使用默認配置:classpath下的ValidationMessages.properties -->
  	<property name="validationMessageSource" ref="messoreSources" />
  </bean>
  <!-- 額外錯誤信息文件配置 -->
  <bean id="messoreSources" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!--   	錯誤信息資源文件, 不需要寫后綴, 默認后綴為.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)文章

  • vscode快速引入第三方j(luò)ar包發(fā)QQ郵件

    vscode快速引入第三方j(luò)ar包發(fā)QQ郵件

    這篇文章主要介紹了vscode快速引入第三方j(luò)ar包發(fā)QQ郵件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • springboot配置文件使用方式

    springboot配置文件使用方式

    文章介紹了將參數(shù)配置在配置文件中的方法,包括使用@Component和@Value注解進行外部配置的屬性注入,以及使用@ConfigurationProperties簡化配置,文章還提供了YAML格式配置文件的語法和特點,并強調(diào)了集中管理和維護配置參數(shù)的重要性
    2024-11-11
  • Struts2 Result 返回JSON對象詳解

    Struts2 Result 返回JSON對象詳解

    這篇文章主要講解Struts2返回JSON對象的兩種方式,講的比較詳細,希望能給大家做一個參考。
    2016-06-06
  • idea 打包的jar運行報

    idea 打包的jar運行報 "XXX中沒有主清單屬性"

    這篇文章主要介紹了idea 打包的jar運行報 "XXX中沒有主清單屬性",文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • java排序算法之_選擇排序(實例講解)

    java排序算法之_選擇排序(實例講解)

    下面小編就為大家?guī)硪黄猨ava排序算法之_選擇排序(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java程序圖形用戶界面設(shè)計之按鈕與布局

    Java程序圖形用戶界面設(shè)計之按鈕與布局

    圖形界面(簡稱GUI)是指采用圖形方式顯示的計算機操作用戶界面。與早期計算機使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于接受,本篇精講Java語言中關(guān)于圖形用戶界面的按鈕和布局部分
    2022-02-02
  • Java基礎(chǔ)教程之Map遍歷的5種方式

    Java基礎(chǔ)教程之Map遍歷的5種方式

    Map作為Java中的一種集合,以鍵值對的形式存放一批數(shù)據(jù),經(jīng)常會被我們應(yīng)用在項目中,這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之Map遍歷的5種方式,需要的朋友可以參考下
    2024-01-01
  • Spring在多線程下@Resource注入為null的問題

    Spring在多線程下@Resource注入為null的問題

    這篇文章主要介紹了Spring在多線程下@Resource注入為null的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • JavaScript 與 Java 區(qū)別介紹  學(xué)java怎么樣

    JavaScript 與 Java 區(qū)別介紹 學(xué)java怎么樣

    JavaScript 是一種嵌入式腳本文件,直接插入網(wǎng)頁,有瀏覽器一邊解釋一邊執(zhí)行。而java 語言不一樣,他必須在JAVA虛擬機上運行。而且事先需要進行編譯。接下來腳本之家小編給大家揭曉js與java區(qū)別,感興趣的朋友一起看看吧
    2016-09-09
  • 使用Jersey構(gòu)建圖片服務(wù)器過程解析

    使用Jersey構(gòu)建圖片服務(wù)器過程解析

    這篇文章主要介紹了使用Jersey構(gòu)建圖片服務(wù)器過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10

最新評論

铁岭市| 奉新县| 马关县| 剑河县| 南江县| 山东| 雅安市| 涿鹿县| 咸阳市| 乌拉特中旗| 平南县| 渑池县| 丽江市| 汉沽区| 丰城市| 来宾市| 辉南县| 平阳县| 广丰县| 丹寨县| 砚山县| 嵩明县| 白水县| 壶关县| 阿拉善左旗| 吉林省| 青冈县| 乌拉特前旗| 砀山县| 临猗县| 侯马市| 开原市| 清河县| 密云县| 延庆县| 若羌县| 中阳县| 武强县| 谢通门县| 兴安盟| 普定县|