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 字符串:如果您在 JS 中单引号 Java 值,您将获得无效的 JS,因为您没有对字符串值进行 JS 转义。

于 2013-05-05T12:51:22.540 回答
0

下面代码中给出的方法可能是正确的,但是变量 any 将只有一个值,该值也仅在 for each 循环的最后计数期间存在

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

例如,如果变量详细信息的循环是列表类型,其中包含字符串类型对象,例如“A”、“B”、“C”,那么在 var 的值将是“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 回答