SpringMVC 使用validation校验无法加载properties文件,及验证信息乱码的问题

今天在使用JSR-303 validation进行校验时出现了标题中的相关问题

po类相关代码:

 

    @Size(min=1,max=30,message="{items.name.length.error}")
    private String name;
    @NotNull(message="{items.createtime.isNUll}")
    private Date createtime;


springmvc.xml:

 

 



	
		
		
	
	
		
			
				classpath:CustomValidationMessages
			
		
		
		
		
		
		
	
	
		
			
				classpath:CustomValidationMessages
			
		
		
		
	


controller.java:

 

 

@RequestMapping("/editItemsSubmit")
	public String editItemsSubmit(Model model, HttpServletRequest request, Integer id, @Validated ItemsCustom itemsCustom, BindingResult bindingResult) throws Exception {
		if (bindingResult.hasErrors()) {
			List allErrors = bindingResult.getAllErrors();
			for (ObjectError objectError : allErrors) {
				System.out.println(objectError.getDefaultMessage());
			}
			model.addAttribute("allErrors", allErrors);
			model.addAttribute("items", itemsCustom);
			return "items/editItems";
		}

 

 

 

CustomValidationMessage.properties:

 

items.name.length.error=请输入1到30个字符的商品名称
items.createtime.isNULL=请输入商品的生产日期

 

 

 

 

 

第一个问题很明显是properties文件中的信息未正确加载导致的。经检查发现po类中非空校验的代号为items.createtime.isNUll,properties文件中为items.createtime.isNULL,二者不匹配导致了错误。

另附springmvc加载配置properties文件的几种方式以供学习http://blog.csdn.net/chinadim/article/details/40621671

 

第二个问题是由于编码问题导致的

经查询将springmvc.xml文件中的

 

更改为:

 

 

 

 

 

或者利用jdk根目录bin文件夹下的native2ascii.exe文件将properties文件转为UTF-8也可解决。

 

你可能感兴趣的:(JavaWeb)