ResourceBundleMessageSource解决错误

时间:2011-01-26 13:15:32

标签: java spring jsp

我有一个JSP-Tagfile,它呈现html-header并定义我的Javascript / Stylesheet资源。

<%@ tag language="java" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="<spring:theme code="main.css"/>"/>
    <script type="text/javascript" src="<spring:theme code="default.js"/>"></script>
...

</html>

现在我不想为javascript的东西加载i18n消息。

var button_ok='<spring:message code="js.button.ok" javaScriptEscape="true"/>';

当我在标记文件中使用它时,它按预期工作并解析消息,即使只有默认的messages.properties(后备)。

但是,如果我使用外部javascript文件lang.js.jsp加载消息,它只会尝试针对当前语言的属性解析消息代码,并且回退到默认语言不起作用。

1 个答案:

答案 0 :(得分:1)

如果应在标记内解析消息,则使用DispatcherServlet中定义的ApplicationContext。否则,使用ContextLoaderListener中的ApplicationContext(根应用程序上下文)。

为了解决这个问题,我将ResourceBundleMessageSource移动到ContextLoaderListener加载的配置中。