0

我最近在使用 spring mvc 时遇到了问题。我在我的项目中使用 i18n 消息。但我发现 jsp 没问题,但在我的自定义 java 代码中确实有效。

我的配置如下:</p>

<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'.
4

1 回答 1

0

您是否在 dispatcher-servlet.xml 中定义了“messageSource”?

我猜您的 java 代码(我认为是一项服务)是在 applicationContext.xml 中定义的,因此它不会注入预期的 messageSource。

于 2013-07-29T03:52:19.960 回答