0

JQuery で JSP 変数を使用したいと考えています。それを理解する方法を教えてください..

ここにJSPの私のコードがあります..

<c:set var="fontClass" value="unicode ieUnicode" />

そして、私の JS ファイルでは、JQuery で取得して出力するだけです。など ..

     (1). var fontClass = '${fontClass}';
          console.log("Result values are--- "+fontClass);
     (2). console.log("Result values are--- "+$('fontClass');

しかし、これら二つのことは私の問題を満足させることはできません。そして、How to use JSTL var in Jqueryの記事が好きです。だから、私はそのようにしてみました...

JSP ::

<c:set var="fontClass" value="unicode ieUnicode" />
<script type="text/javascript">
  var fontClass = "${fontClass}";
</script>

JS ファイル::

var fontClass = '${fontClass}';
alert($("#${fontClass}"));

しかし、エラーが発生しました: 構文エラー、認識されない式: #${fontClass}

私のコードや提案の何が問題になっていますか? 前もって感謝します..

4

1 に答える 1

2

<c:set/>このように JS ファイルでJSTL 値を取得することはできません。JSP はサーバー側で処理され、JS はクライアント側で処理されます。

JS ファイルで値を使用するには:

JSP ファイル:

<c:set var="fontClass" value="unicode ieUnicode" />
<script type="text/javascript">
    yourJsFunction("${fontClass}");
</script>

JS ファイル:

function yourJsFunction(fontClass) {
    // finalResult is a local variable
    var finalResult = fontClass;

}

インライン javascipt コードで値を使用するには (あまり良くありません):

JSP ファイル:

<c:set var="fontClass" value="unicode ieUnicode" />
<script type="text/javascript">
    // finalResult is a global variable
    var finalResult = "${fontClass}";
</script>

/!\このグローバル変数には一般的な名前があり、ほとんどどこからでもアクセスできるため、これはあまり良い方法ではありません。次の解決策を見てください。

インライン javascipt コードで値を使用するには (名前空間を使用するより良い方法):

JSP ファイル:

<!-- Define your namespace, which is a global object -->
<script>
    var yourCompany = yourCompany || {};
</script>

<c:set var="fontClass" value="unicode ieUnicode" />
<script type="text/javascript">
    // Set all values you want to your namespace
    yourCompany.fontClass = "${fontClass}";
    yourJsFunction();
</script>

JS ファイル:

function yourJsFunction() {
    // The font class value set in your namespace is accessible like that :
    yourCompany.fontClass;
}
于 2013-08-10T13:51:48.243 に答える