【问题标题】:How to use JSTL and other Spring tag in javascript file?如何在 javascript 文件中使用 JSTL 和其他 Spring 标签?
【发布时间】:2011-10-30 11:17:38
【问题描述】:

我有两个文件,第一个是list.jsp,另一个是loadmore.js 我在list.jsp 文件中调用loadmore.js。我想在我的 JavaScript 文件中使用像 <spring:message code="loadMore" /><c:out value="${loadmore}" /> 这样的标签。但我不知道如何在 JavaScript 文件中使用或导入这些库。

你能帮忙怎么做吗?


更新:在我的配置中添加了以下内容:

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>compilerSourceVM</param-name>
        <param-value>1.5</param-value>
    </init-param>
    <init-param>
        <param-name>compilerTargetVM</param-name>
        <param-value>1.5</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>

但现在我在 FireBug 控制台中收到以下消息。

missing ) after argument list console.log("<spring:message code="label.empty" />"); 

【问题讨论】:

  • 根据您的 JavaScript 错误,您需要使用两种不同的引号,例如 '&lt;spring:message code="label.empty" /&gt;'
  • 我放了不同种类的引号,输出是这样的:&lt;spring:message code="label.empty" /&gt; 它没有给我属性文件中的值。
  • 我确定它没有,但至少它摆脱了 JavaScript 错误。
  • 是的,它摆脱了 JS 错误,但它没有给我正确的输出。它必须给出“没有更多价值”而不是 &lt;spring:message code="label.empty" /&gt;
  • 现在这些在我的 html 页面中并且运行良好,我想将它们放在 js 页面上但我不能:(

标签: javascript spring jstl jsp-tags


【解决方案1】:

您可以将所有外部 JavaScript 放在一个函数中,该函数接受 .jsp&lt;script&gt; 标记中定义的变量。

在您的 .jsp 中(我正在使用 jQuery):

<script src='<spring:url value="/resources/script.js"/>'></script>

<script>
$(function() {
    var messages = {
        some_message: '<spring:message code="some.message" text="some.message"/>'   
    };

    init(messages);
});

然后在你的 .js 文件中:

function init(msg) {
    console.log(msg.some_message);
}

【讨论】:

    【解决方案2】:

    为了在 JS 文件中使用 JSP 标签,您需要将 JSP 引擎应用到它(例如,在 Tomcat 服务器的情况下使用 Jasper)。为此,您可以在 web.xml 文件中添加以下内容:

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>
    

    【讨论】:

    • 您是否收到任何错误消息?您可能需要在 web.xml 文件中添加 Jasper servlet。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 2011-12-03
    • 2022-01-14
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多