Передать значение JSP во внешний файл Javascript
есть ли способ передать значение переменной JSP во внешний файл Javascript, используя только Javascript и JSP. Что-то вроде:
JSP
String str = "Hello";
внешний.Яш
//not working var str = "<%=str%>";
спасибо.
4 ответов
Если вы думаете, что сценарий java написан внутри JSP, то это возможно.
но вы предоставляете файл JS отдельно, то вы можете сделать глобальную переменную и эта переменная будет доступна везде.
вы не сможете записать во внешний файл js. Однако, если вы ставите var s = "<%=str%>";
в вашем jsp s станет глобальной переменной, которая может использоваться в вашем внешнем js-файле, потому что s будет иметь глобальную область. Короче говоря, вы не можете изменить фактический JS-файл, но вы можете добавить переменную с глобальной областью и ссылаться на эту переменную в вашем внешнем JS-скрипте.
вы можете просто создать jsp, содержащий JS-код с" динамическим материалом", напечатанным внутри, а затем импортировать этот jsp как обычный JS-файл. Я покажу вам свою собственную реализацию для сайта, над которым я работаю (он использует распорки). Я использую этот подход для экспорта на клиентскую сторону карты, содержащей несколько локализованных строк:
фу.jsp:
<%@ page contentType="text/javascript" pageEncoding="UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
var myString = '<s:text name="foo.MY_STRING" />'
распорки.XML-код:
<action name="foo"><result>foo.jsp</result></action>
дома.jsp:
<script type="text/javascript" src="foo.action" charset="UTF-8"></script>
определите строку перед включением файла JavaScript в файл JSP.
<script type="text/javascript">
var str = "Hello";
</script>
<script src="js/myJavascript.js"></script>
в вашем файле JavaScript вы можете напрямую ссылаться на переменную.
например
alert(str)