【问题标题】:Fix forEach loop in javascript code修复 javascript 代码中的 forEach 循环
【发布时间】:2014-08-23 16:15:23
【问题描述】:

我希望任何人都可以帮助我。我已经搜索并尝试了视图解决方案,但这些都没有解决我的问题。

我想在 Javascript 中使用 forEach

控制器:

 model.addAttribute("aqua", aquaDao.aquaLoad());
 mv.setViewName("aqua");

在选择语句的 jsp 文件中,forEach 可以正常工作。 但在功能上它不起作用。

功能:

function aqua_select() {
    <c:forEach var="aqua" items="${aqua}" varStatus="status">
    var  sName = "<c:out value="${aqua.name}"/>";
    alert('Test' +sName);
    </c:forEach> }

例外:

org.apache.jasper.JasperException:发生异常处理 JSP 页面 /WEB-INF/view/aqua.jsp 在第 27 行

24:   function aqua_select(value) {
25:       //var values = [];
26:       <c:forEach var="aqua" items="${aqua}" varStatus="status">
27:       var  sName = "<c:out value="${aqua.name}"/>";
28:       </c:forEach>
29:       alert('Test' + sName);
30:   }

java.lang.NumberFormatException:对于输入字符串:“名称”

我做错了什么?

【问题讨论】:

  • 即使没有例外,代码也没有任何意义。您正在生成一个 JavaScript 函数,该函数一遍又一遍地重新声明相同的变量。
  • 感谢您的回答。该功能仅用于测试,稍后会扩展。但是警报应该显示具有当前值的变量 sName。还是我完全错了?
  • 好吧,您的代码在问题中出现的两个地方看起来不同。第一个有alert() inside &lt;c:forEach&gt; 但第二个有alert() outside。当然,这与 JSP 代码无关;我不明白为什么你会从该代码中得到 NumberFormatException。
  • alert() 也仅用于测试。 ;-) 重要的是,&lt;c:forEach&gt; 有效。您需要更多信息吗?
  • 对,但是这个例外没有任何意义。您是否尝试过简单的var sName = "${aqua.name}";?无论如何,使用&lt;c:out/&gt; 对你没有任何好处。

标签: javascript hibernate jsp exception foreach


【解决方案1】:

你可以这样做。

  <script>
    var sName = {
       <c:forEach var="aqua" items="${aqua}" varStatus="status">
            '${aqua.name}'${!status.last ? ',' : ''}
        </c:forEach>
    };
//print arrays using javascript
  </script>

你会有这样的输出。

<script>
 var sName = {'aqua1','aqua2','aqua3'};
</script>

或者如果你有另一个属性假设它是一个数字。

  <script>
    var sName = {
       <c:forEach var="aqua" items="${aqua}" varStatus="status">
            '${aqua.name}' : ${aqua.anotherNumberProperty} ${!status.last ? ',' : ''}
        </c:forEach>
    };


      //output
      //sName = {
      //  'aqua1' : 0,
      //  'aqua2' : 1,
      //  'aqua3' : 2
      // };
  </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2015-10-02
    相关资源
    最近更新 更多