java无法使用springmvc使用大小注释打印属性文件中的消息
我对Spring MVC完全陌生。我有一个带有下面注释的Student
类
@Size(min=2, max=10 )
public String studentHobby;
和StudentController
类:
@RequestMapping("admissionSuccess.html")
public ModelAndView admissionSuccess(@Valid @ModelAttribute("student") Student student,BindingResult result)
{
if(result.hasErrors())
{
ModelAndView model=new ModelAndView("admissionForm");
return model;
}
ModelAndView model=new ModelAndView("admissionSuccess");
model.addObject("student",student);
return model;
}
和{
Size.student.studentHobby=please enter a value for studenthobby between 2 and 10;
和spring-servlet.xml
文件:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/studentmessages/"></property>
</bean>
我无法打印属性文件中的消息,我正在获取默认消息。请告诉我代码是否有问题
# 1 楼答案
您需要将属性
message
添加到注释@Size
:如果未定义此属性,将自动生成一条消息:
你还需要:
在
messageSource
bean中定义属性文件的正确路径WEB-INF/i18n/messages
在配置文件中配置
LocalValidatorFactoryBean
将声明的验证器注入控制器并使用它
如图here
# 2 楼答案
你的目录结构如何?看起来您将yout ReloadableResourceBundle的basename设置为与属性文件名匹配。相反,它必须与您放置邮件文件的文件夹相匹配。并将
studentmessages.properties
重命名为ValidationMessages.properties
(验证消息的默认资源包)像这样:
并将其添加到配置xml中:
目录结构:
您应该在模型的属性中指定应该在验证中使用哪条消息(如Igor Patsyan所说)。像这样:
参考:http://www.silverbaytech.com/2013/04/16/custom-messages-in-spring-validation/