国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

springmvc的@Validated注解使用

2019-11-08 02:26:23
字體:
供稿:網(wǎng)友

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" >    	<!-- 提供檢驗機(jī)制的類: 此處用的而是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組的屬性進(jìn)行校驗	 * @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組的屬性


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 通山县| 宜阳县| 罗甸县| 瓦房店市| 丁青县| 濮阳市| 南充市| 正蓝旗| 旺苍县| 揭东县| 漳州市| 天长市| 日土县| 姚安县| 盐源县| 左权县| 无棣县| 绍兴县| 石阡县| 兰州市| 侯马市| 莱阳市| 榕江县| 雷波县| 西乌珠穆沁旗| 昂仁县| 邵东县| 津市市| 时尚| 莎车县| 汽车| 安丘市| 光泽县| 固原市| 勐海县| 东源县| 外汇| 麻阳| 淮北市| 平潭县| 博湖县|