Как использовать скриптлет внутри javascript
может кто-нибудь проверить этот пример и поделиться результатами?
http://timothypowell.net/blog/?p=23
Когда я это делаю:
var myVar = '<% request.getContextPath(); %>';
alert(myVar);
Я : '<% request.getContextPath(); %>'.
удаление вложенных одинарных кавычек из ' '; дает синтаксическую ошибку. Как я могу использовать scrptlet или expresion внутри функции js?
EDIT: эта ссылка имеет объяснение, которое помогло я ... :
http://www.codingforums.com/showthread.php?t=172082
4 ответов
похоже, что вы размещаете код JSP на странице JavaScript или, по крайней мере, на странице без JSP. Сценарии могут быть включены только в JSP странице (обычно настраивается на *.JSP-страница.)
представленный оператор, если он обрабатывается компилятором JSP, приведет к тому, что myVar будет равен " как формат скриптлета, который вы используете выполняет Java-код между тегами, но не возвращает результат.
Итак, чтобы использовать этот тег, вам нужно будет вручную записать значение в выходной поток запроса. Чтобы получить желаемую функциональность, вам нужно сделать следующее:
make sure your code is in a JSP page
use var myVar = '<%= request.getContextPath() %>'; (note the equals sign)
при этом сценарии рассматриваются как плохой практики в большинстве случаев. В большинстве случаев вы должны использовать выражения JSTL и пользовательские теги.
эта строка кода должна быть помещена в HTML <script>
теги . Сюда JspServlet
обработает скриптлеты (и другие специфические выражения JSP/EL).
<script>var myVar = '<%= request.getContextPath() %>';</script>
отметим, что <%= %>
является правильным синтаксисом для печати переменной,<% %>
Не делай этого.
или если он предназначен для обслуживания в автономном .js
файл, Затем вам нужно переименовать его в .jsp
и добавьте следующее в верхнюю часть файла (и измените <script src>
URL соответственно):
<%@page contentType="text/javascript" %>
...
var myVar = '<%= request.getContextPath() %>';
сюда JspServlet
обработает его, и браузеру будет поручено интерпретировать тело ответа JSP как JavaScript вместо HTML.
не связано с конкретной проблемой, обратите внимание, что сценарии считается плохой практики. Используйте EL.
var myVar = '${pageContext.request.contextPath}';
var myVar = '<%=request.getContextPath() %>';
alert(myVar);
вы забыли поставить = перед запросом и удалить ; после getContextPath ()