JavascriptとJSPのみを使用して、JSP変数値を外部Javascriptファイルに渡す方法はありますか?以下のような何か:JSP値を外部Javascriptファイルに渡す
JSP
String str = "Hello";
external.js
//not working var str = "<%=str%>";
感謝。
JavascriptとJSPのみを使用して、JSP変数値を外部Javascriptファイルに渡す方法はありますか?以下のような何か:JSP値を外部Javascriptファイルに渡す
JSP
String str = "Hello";
external.js
//not working var str = "<%=str%>";
感謝。
あなたは、JavaスクリプトがJSPの内部に書かれていると思うなら、それは可能です。
しかし、JSファイルを別々に提供している場合は、グローバル変数を作成することができ、その変数はどこでも利用できます。
あなたは外部のjsファイルに書き込めません。しかし、var s = "<%=str%>";
をjspに入れると、sはグローバルスコープを持つため、外部jsファイル内で使用できるグローバル変数になります。したがって、簡単に言えば、実際のjsファイルを変更することはできませんが、グローバルスコープの変数を追加し、その変数を外部のjsスクリプト内で参照することができます。
"ダイナミックなもの"が印刷されたjsコードを含むjspを作成し、そのjspを通常のjsファイルとしてインポートすることができます。私はあなたが私が取り組んでいるサイト(ストラットを利用しています)のために、私自身の実装を見せます。私は、クライアント側にいくつかのローカライズされた文字列を含むマップをエクスポートするには、このアプローチを使用しています:
foo.jsp:
<%@ page contentType="text/javascript" pageEncoding="UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
var myString = '<s:text name="foo.MY_STRING" />'
struts.xml:
<action name="foo"><result>foo.jsp</result></action>
home.jspを:
を<script type="text/javascript" src="foo.action" charset="UTF-8"></script>
JSPファイルにJavaScriptファイルを含める前に、文字列を定義します。
<script type="text/javascript">
var str = "Hello";
</script>
<script src="js/myJavascript.js"></script>
JavaScriptファイルでは、変数を直接参照することができます。
alert(str)