我正在尝试在资源文件中定义错误消息,但似乎无法加载它们,因此我可以在控制器中使用它们。
我的servlet-context.xml文件:
<beans:bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<beans:property name="basename" value="classpath:messages" />
</beans:bean>
我的表格:
public class LoginForm {
@NotEmpty
private String username;
// getters and setters
}
我的messages.properties文件(在我的源文件夹的根目录中,所以它被编译到我的类文件夹的根目录):
NotEmpty.loginForm.username=test1
NotEmpty.username=test2
NotEmpty.java.lang.String=test3
NotEmpty=test4
我的控制器:
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@Valid LoginForm form, BindingResult result) {
if (result.getFieldErrors().size() > 0) {
FieldError firstError = result.getFieldErrors().get(0);
System.out.println(firstError.getDefaultMessage());
}
// ...
}
但是,getDefaultMessage
调用的输出绝不是我在资源文件中定义的!它始终是may not be empty
(默认值)。
我在我的上下文文件中尝试了各种不同的条目,但它似乎没有加载资源文件。我究竟做错了什么?