jsp声明和递增变量

时间:2014-10-21 09:26:29

标签: jsp rss

我必须通过我的jsp页面显示网站的RSS源代码。这里是代码。

<c:if test="${param.feedURL != null}">

<c:import var="xmlContent" url="${param.feedURL}"/>

<x:parse var="doc" xml="${xmlContent}"/>

<%! int i =1; %>
<table class="table table-condensed">
<th>
    <td colspan="2">
        <strong>Please select an item to set as message.</strong>
    </td>
</th>
 <x:forEach var="story"
            select="$doc/rss/channel/item" varStatus="status">
     <tr>
        <td><input type="radio" name="feedValue[]"  onclick="$('#message').val(this.value);" data-dismiss="modal" value="<x:out select="description" escapeXml="false"/>"></td>
        <td><x:out select="description" escapeXml="false"/></td>
    </tr>
    <% i++; %>
    <% if (i >10) break; %>         
  </x:forEach>
</table>
</c:if>

我必须只显示最多10个Feed,所以我最初声明i为1然后我打印到i + 10。 我的代码第一次工作正常,但第二次它只显示1个feed(它没有递增)。可以有人告诉我可能是什么问题?提前谢谢

1 个答案:

答案 0 :(得分:1)

如果没有递增,您将获得所有结果。可能发生的事情是它保持价值&gt; 10,所以它只显示一个项目。尝试在休息前重置i

<% if (i >10) { i = 1; break; } %> 

您也可以使用varStatus,不使用scriptlet

<c:if test="${status.index lt 10}">
     <tr>
        <td><input type="radio" name="feedValue[]"  onclick="$('#message').val(this.value);" data-dismiss="modal" value="<x:out select="description" escapeXml="false"/>"></td>
        <td><x:out select="description" escapeXml="false"/></td>
    </tr>
</c:if>