【问题标题】:javax.servlet.jsp.JspTagException: No message found under code 'message' for locale 'en_US'javax.servlet.jsp.JspTagException:在区域设置“en_US”的代码“消息”下找不到消息
【发布时间】:2017-07-25 13:35:29
【问题描述】:

我正在使用@ProprtySource 读取属性文件,下面是我的代码-

@PropertySource(value="classpath:/application.properties")
public class HomeService{
    @Value("${message}")
    String message;
}

也在我的 JSP 中-

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<spring:eval expression="@environment.getProperty('message')" />

两者都工作正常。

注意:我没有注册任何propertySourcePlaceHolderConfigurerResourceBundle,即除了上面没有其他配置。

但是我一申请spring:message as-

<spring:message code="message"/>

这给了我例外-

javax.servlet.jsp.JspTagException:在区域设置“en_US”的代码“消息”下找不到消息。

【问题讨论】:

    标签: spring jsp properties


    【解决方案1】:

    spring:message 标签使用 Spring 的 MessageSource 概念为您提供国际化支持。 MessageSource 是一个提供检索消息功能的接口。您需要配置 ResourceBundleMessageSource 才能使用 spring:message-tag。

    <bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="messages"/>
    </bean>
    

    或者通过java配置:

        @Bean(name = "messageSource")
        public ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource() {
            ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
            messageSource.setBasenames("classpath:messages");
            messageSource.setDefaultEncoding("UTF-8");
            return messageSource;
        }
    

    【讨论】:

    • 你拯救了我的周末!谢谢:-)
    猜你喜欢
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多