【问题标题】:set value of jquery variable equal to a jstl variable设置 jquery 变量的值等于一个 jstl 变量
【发布时间】:2013-05-05 12:36:02
【问题描述】:

我有一个 jstl 值,

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

我想将 jquery 中的变量设置为等于 var = "c"。

我该怎么做?

【问题讨论】:

    标签: spring spring-mvc jstl el


    【解决方案1】:
    <script>
      <c:forEach items="${detail}" var="u">
        <c:set value="${u.content}" var="c"/>
        var whatever = ${c};
      </c:forEach>
    <script>
    

    您可能需要 JS 对其进行转义、引用等,具体取决于您未提及的变量 in 的实际内容。也不清楚“jQuery中的变量”是什么。

    底线是,如果 JavaScript 存在于 JSP 中,只需使用该值:在发出响应之前不会评估 JS,因此可以混合搭配,但请注意,它很容易创建无效的 JavaScript,除非您注意正确转义您发出的任何值类型。

    作为一个例子,考虑一个包含单引号的 Java 字符串:如果你在 JS 中用单引号引用 Java 值,你会得到无效的 JS,因为你没有对字符串值进行 JS 转义。

    【讨论】:

    • 变量中有String值
    • js转义是什么意思?
    • @Karan 将其转义,使其在渲染后成为合法的 JavaScript。
    【解决方案2】:

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

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

    例如,如果变量 detail 的循环是列表类型,其中包含字符串类型对象,例如 "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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      相关资源
      最近更新 更多