我最近使用spring mvc时遇到问题。 我在我的项目中使用i18n消息。但我发现jsp是可以的,但在我的自定义java代码中工作。Spring MVC消息在JSP中正常,但不在我的Java代码中
我的配置为如下:
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource"
abstract="false" scope="singleton" lazy-init="default">
<property name="basename" value="messages/messages" />
</bean>
我的JSP代码(我只是写这个测试代码,它得到的结果):
<spring:message code="error.user.none.registered" arguments="aaa"/>
我的Java代码:
@Resource
protected MessageSource messageSource;
public Object login(String email, String password, String ip)
throws Exception {
User t = userDao.queryByEmail(email);
if (t == null) { // 账号不存在
return messageSource.getMessage(
Constants.ERROR_USER_NONE_REGISTERED,
new Object[] { email }, Locale.SIMPLIFIED_CHINESE);
}
.....
}
这段代码是在我的UserService.java登录方法中,我想检查电子邮件是否被注册。但也会得到错误
org.springframework.context.NoSuchMessageException: No message found under code 'error.user.none.registered' for locale 'zh_CN'.
从您的代码中,我猜测您的消息源未正确检索。我以前没有使用@Resource ...我认为你可以尝试使用Autowire保护的MessageSource messageSource而不是 –