我有一个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
加载消息,它只会尝试针对当前语言的属性解析消息代码,并且回退到默认语言不起作用。
答案 0 :(得分:1)
如果应在标记内解析消息,则使用DispatcherServlet中定义的ApplicationContext。否则,使用ContextLoaderListener中的ApplicationContext(根应用程序上下文)。
为了解决这个问题,我将ResourceBundleMessageSource移动到ContextLoaderListener加载的配置中。