0

requirejs の関数を使用して、外部 js ファイルで をServlet使用して送信された値を取得したいと思います。HttpSessiondefine

define(function(){
    return {
        /*Get values from the java session*/
        gisuniqkey:<%=session.getAttribute('gisuniqkey')%>,
        scenario:<%=session.getAttribute('scenario')%>,
        operation:<%=session.getAttribute('operation')%>,
        objkey:<%=session.getAttribute('objkey')%>
    }
});

これを行うことは可能ですか?これを行うときに含める必要がある依存関係はありますか? Eclipse は、これを実行するとエラーが発生したことを通知します。

エラーメッセージは単に構文エラーと呼んでいます:

 Uncaught SyntaxError: Unexpected token < java_to_script.js:3
 Uncaught TypeError: Cannot read property 'gisuniqkey' of undefined     
 gmaps_createScenario.js:15

私が気にかけているのは、jsp 内でグローバル変数を使用しないことです...そして、require.js でうまく動作するはずです。再利用可能なモジュールを作成できれば素晴らしいことです。

4

1 に答える 1

0

.js静的ファイルでは JSP を使用できません。

.jspJavaScript ファイルを出力するファイルでJSP を使用できます。

application/javascriptコンテンツ タイプを出力し、.jspJSP ディレクティブを使用して通常どおり JS をファイルに記述します。

JavaScript ファイルは HTML ファイルとは別に要求されるため、JavaScript ファイルの JSP ディレクティブから HTML ファイルを要求するために使用されるクエリ文字列などを読み取ることはできません (ただし、セッションに追加するかsrc<script>要素の に追加します)。


ただし、経験則として、静的な JS ファイルに固執し、動的に生成された JS を<script>HTML ドキュメント内にインラインとして含める方がよい場合がよくあります (ただし、そのような JS は最小限に抑えます - 必要なデータを格納するのに十分なだけです)。これにより、並べ替えのキャッシュ ルールがより簡単になります。

于 2014-03-29T08:40:38.223 に答える