Как использовать JSTL и другие теги Spring в файле JavaScript? - PullRequest
1 голос
/ 30 октября 2011

У меня есть два файла, первый - list.jsp, а другой - loadmore.js Я звоню loadmore.js в list.jsp файле. Я хочу использовать теги типа <spring:message code="loadMore" /> и <c:out value="${loadmore}" /> в моем файле JavaScript. Но я не знаю, как использовать или импортировать эти библиотеки в файл 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" />"); 

Ответы [ 2 ]

2 голосов
/ 12 ноября 2013

Вы можете поместить весь свой внешний JavaScript в функцию, которая принимает переменные, определенные в теге <script> внутри .jsp .

В вашем .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);
}
0 голосов
/ 30 октября 2011

Чтобы использовать теги JSP в файле JS, вам необходимо применить к нему свой JSP Engine (например, Jasper для сервера Tomcat).Для этого вы можете добавить в файл web.xml следующее:

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