Spring mvc的新手,我试图使用" ReloadableResourceBundleMessageSource"来显示自定义错误消息。从属性文件,但我仍然无法获得自定义消息,我得到的是弹簧默认消息。
我的控制器类: -
public class Controller1 {
@InitBinder
public void initMethod(WebDataBinder binder) {
binder.registerCustomEditor(String.class, "name", new Customproperty());
}
@RequestMapping(value = "/frontend/getdetails.htm", method = RequestMethod.GET)
public ModelAndView getStudentsData(@Valid @ModelAttribute("student") Student student, BindingResult result) {
if (result.hasErrors()) {
ModelAndView model = new ModelAndView("input");
return model;
}
else {
ModelAndView model = new ModelAndView("output");
return model;
}
}
我的模特课: 其中大小变量已经过验证。
public class Student {
private String name;
private int age;
@Size(min = 5, max = 15)
private String address;
private String hobby;
private String email;
}
Spring Xml文件: -
<bean id="messages"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/errormessages"></property>
</bean>
属性文件(/ SpringLearning_9dec / WebContent / WEB-INF / errormessages.properties): -
Size.student.address = address should be with in 44 to 44 characters.
PFA屏幕截图: - program
答案 0 :(得分:0)
实际上,我不确定,id
似乎存在用于ReloadableResourceBundleMessageSource
属性的问题。正如ReloadableResourceBundleMessageSource的文档中所述,它是public interface MessageSource的实现。因此,它的两个实现类ReloadableResourceBundleMessageSource
和ResourceBundleMessageSource
都应该具有与接口messageSource
相同的ID。
我认为在寻找接口MessageSource
的实现时,Spring会查找标识为messageSource
且实现类为ResourceBundleMessageSource
或ReloadableResourceBundleMessageSource
的bean。