这个答案帮助我了解了问题所在。
要点是,Hibernate解析的消息最终将成为BindingResult中的默认消息。
因此,应该:
从自定义消息中删除括号,然后使用:
String msg = messageSource.getMessage(e.getDefaultMessage(), e.getArguments(), locale);
- 要正确查找内插所有参数的消息。
要么
- 完全放弃自定义的消息,并依靠Spring消息代码-例如,对于Size注释,请在message.properties中使用Size.model.field和代码进行查找,例如:
String msg = messageSource.getMessage(e, locale);
我的期望是,来自BindingResult的默认消息将具有完全内插的文本,但是看来,如果该消息位于括号中,则Hibernate会在捆绑包中查找该消息,但不对参数进行插值,而是清理字符串并剥离所有花括号。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)