0

私はjstl値を持っています、

<c:forEach items="${detail}" var="u">
<c:set value="${u.content}" var="c"/></c:forEach>

jquery の変数を var = "c" に設定したいと考えています。

どうすればそれができますか?

4

2 に答える 2

2
<script>
  <c:forEach items="${detail}" var="u">
    <c:set value="${u.content}" var="c"/>
    var whatever = ${c};
  </c:forEach>
<script>

言及していない変数の実際の内容に応じて、JSエスケープしたり、引用したりする必要がある場合があります。「jQueryの変数」が何であるかも明確ではありません。

要点は、JavaScript が JSP 内にある場合は、値を使用するだけです。JS は応答が発行されるまで評価されないため、さまざまな組み合わせが必要ですが、無効な JavaScript を作成するのは非常に簡単であることに注意してください。発行している値の型が何であれ、適切にエスケープするように注意してください。

例として、一重引用符を含む Java String を考えてみましょう。JS で Java 値を一重引用符で囲むと、文字列値を JS エスケープしなかったため、無効な JS になります。

于 2013-05-05T12:51:22.540 に答える
0

以下のコードで指定された方法は正しいかもしれませんが、 for each ループの最後のカウント中にのみ存在する値を 1 つだけ持つ変数は何でもあります。

<script>
    <c:forEach items="${detail}" var="u">
        <c:set value="${u.content}" var="c"/>
        var whatever = ${c};
    </c:forEach>
<script>

たとえば、変数の詳細のループが "A" 、 "B" 、"C" などの文字列型オブジェクトで構成されるリスト型の場合、変数の値が "C" になる場合、これはこれは、jstl がコンパイル時の言語であるためです。

したがって、上記のコードはループごとに機能しません。次のコードが役立つか、少なくとも同じアイデアを提供します。

<script>
    var whatever = new Array;
    <c:forEach items="${detail}" var="u">
        <c:set value="${u.content}" var="c"/>
        for (var i=0;i<whatever.length;i++)
        {
            whatever[i]=${c};
        }
    </c:forEach>
<script>
于 2013-07-19T16:47:43.090 に答える