javax.servlet.jsp.JspTagException:在代码' message'下找不到任何消息对于语言环境' en_US'

时间:2017-03-05 19:16:15

标签: spring jsp properties

我正在使用@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应用为 -

<spring:message code="message"/>

这给了我例外 -

  

javax.servlet.jsp.JspTagException:在代码&#39; message&#39;下找不到任何消息对于语言环境&#39; en_US&#39;。

1 个答案:

答案 0 :(得分: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;
    }