JSTL嵌套的foreach循环不打印

时间:2012-09-07 23:02:10

标签: java jsp jstl

目前正在开发一个项目,我从JSP中的Servlet接收Map对象的ArrayList。它的工作方式是当页面被拉起时,有一个通过jquery的AJAX调用到一个Servlet,它将使用必要的List of 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>

为简洁起见。虽然View Source看起来如下:

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

1 个答案:

答案 0 :(得分:0)

在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>