java - JSTL嵌套foreach循环不打印

标签 java jsp jstl

目前正在开发一个项目,我从 JSP 中的 Servlet 接收 Map 对象的 ArrayList。它的工作方式是,当拉出页面时,会通过 jquery 对 Servlet 进行 AJAX 调用,该 Servlet 将发送回带有必要的 map 列表的响应。我遇到的问题是在加载页面后我试图根据 Map 对象中的值构建一个表。我的代码似乎正在工作(在某种程度上)。当我使用 firebug 查看 XHR 响应时,我可以看到整个页面中预期的位置都有正确的标签(即 tr 和 td 标签)。当我尝试在浏览器中使用“查看源代码”查看页面时,在 forEach 循环内创建的 HTML 不存在,只有我手动创建的 HTML 存在。

    <table>
            <tr>
                <th>Home</th>
                <th>Away</th>
            </tr>
            <c:forEach var="currentTeam" items="${GamesList}">
                <tr id="game">
                <c:forEach var="currentGame" items="${currentTeam}">
                    <c:if test="${currentGame.key eq 'Home' }">
                        <td>${currentGame.value}</td>
                    </c:if>
                    <c:if test="${currentGame.key eq 'Visitor' }">
                        <td>${currentGame.value }</td>
                    </c:if>
                </c:forEach>
                </tr>
            </c:forEach>
        </table>

是我当前使用的代码。它本身包含在 div 标签中。不确定它是否有帮助,但只有当用户单击按钮打开 Jquery 弹出窗口时才会显示此 div。任何帮助将不胜感激。

在 Firebug 中查看的 XHR 响应如下所示

              <tr><td>New York Giants</td><td>Dallas Cowboys</td></tr>
                <tr><td>Chicago Bears</td><td>Indianapolis Colts</td></tr>
                <tr><td>Minneosta Vikings</td><td>Jacksonville Jaguars</td></tr>
                <tr><td>New York Jets</td><td>Buffalo Bills</td></tr>
                <tr><td>Houston Texans</td><td>Miami Dolphins</td></tr>
                <tr><td>Tennessee Titans</td><td>New England Patriots</td></tr>
                <tr><td>Detroit Lions</td><td>St. Louis Rams</td></tr>
                <tr><td>New Orleans Saints</td><td>Washington Redskins</td></tr>
                <tr><td>Cleveland Browns</td><td>Philadelphia Eagles</td></tr>
                <tr><td>Kansas City Chiefs</td><td>Atlanta Falcons</td></tr>
                <tr><td>Green Bay Packers</td><td>San Francisco 49ers</td></tr>
                <tr><td>Arizona Cardinals</td><td>Seattle Seahawks</td></tr>
                <tr><td>Tampa Bay Buccaneers</td><td>Carolina Panthers</td></tr>

为了简洁起见,进行了删减。查看源代码如下所示:

                <table>
            <tr>
                <th>Home</th>
                <th>Away</th>
            </tr>

最佳答案

在 Servlet 中打印列表并将结果设置为 div 内容,如下所示

$("button").click(function(){
    $.ajax({url: "\ServletCall", success: function(result){
        $("#div1").html(result);
    }});
});

<table>
            <tr>
                <th>Home</th>
                <th>Away</th>
            </tr>
<div id="div1"></div>
</table>

关于java - JSTL嵌套foreach循环不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326473/

相关文章:

java - 如何获取文档的另一个嵌套列表的嵌套记录?

java - 如何并排打印两个二维数组?

java - 化简分数,Java

java - jsp页面显示服务器时间

java - 如何将 varStatus 计数从 JSP 传递到 Controller ?

java - Android second layer on running camera app

java - 如何在JSP中重新排列数据

jsp - 如何使用客户端 JSP/Servlet 在另一台计算机上部署 session Bean

jsp - 不能在jsp中使用jSTL

jsp - 如何安装 JSTL?绝对uri : http://java. sun.com/jSTL/core 无法解析