在Javascript中迭代bean?

时间:2012-07-05 19:24:21

标签: javascript json jstl

我们通常在jsp上执行类似JSTL的操作....但我现在需要使用JSON在javascript中设置数据。我如何在Javascript / JSON

中做这样的事情

基本上循环遍历bean并提取其参数:

  <c:forEach var="field" items="${detFields}">
      ${field.groupName}
          ${field.breakoutAllowed}           
 </c:forEach>

所以我可以把它放在这样的东西里面:

    "data": [{
        "value": "${field.groupName}"

    }, {

        "value": "${field.breakoutAllowed}"  
    }]

2 个答案:

答案 0 :(得分:1)

您正在寻找的JSON结构看起来像是一个对象数组,每个对象都有两个属性:namebreakoutAllowed。将此数据分配给变量的JavaScript可以从JSP文件中输出。 (当然,在<script>块或同等范围内。)

var output = [
 <c:forEach var="field" items="${detFields}" varStatus="status">
   { 
     "name":"${field.groupName}",
     "breakoutAllowed":"${field.breakoutAllowed}" 
   }
   <c:if test="${not status.last}">,</c:if>
 </c:forEach>
]

答案 1 :(得分:1)

希望这段代码运行良好并且受到您的喜爱。我认为将scriptlet编写成JS是一种奇怪的做法,所以只是提出了另一种方法来处理它。如有必要,请发表评论。

$(document).ready(function(){
    var k=$('#data').val();

    //Convert the value into the required array. Since writing it is JavaScript directly is not a daily practice.
    })

    <input type="hidden" id="data" value=
     <c:forEach var="field" items="${detFields}" varStatus="status">
       { 
         "name":"${field.groupName}",
         "breakoutAllowed":"${field.breakoutAllowed}" 
       }
       <c:if test="${not status.last}">,</c:if>
     </c:forEach>

     />