在jsp頁面上,只使用標簽來迭代循環不定長度的arraylist,并根據arraylist中值,來反應輸出至頁面上,是復雜的。昨天我做了一個2重循環3個arraylist,其中,兩個arraylist的長度是6,另一個arraylist的長度是0-6不等。難度在于,長度不等的arraylist,需要在頁面上輸出6個值(即它含有的數在相應的頁面輸出“欠”,而沒含有的數則需要在相應的頁面輸出欠缺的數值。比如這個arraylist里存放的是1和3和4,則在也面上需要輸出“欠2欠欠56”)。我的思路是,外面兩個定長的arraylist做外層的大循環,而不定長的arraylist做內層小循環,因做小循環時,大循環的index值每自增一筆,內層小循環的index值每次都會從0-6依次循環,因小循環滿足條件時,需要跳出不好控制,則需要在小循環中設定標示變量,通過該表示變量的值來跳出內層循環,并在滿足條件是設定一個全局變量,方便被第2次小循環時抓住值來判斷處理。并以此輸出。我下面的例子是還有一點點小問題,現在沒有時間來改,先放上來backup下,在這個例子中我使用3個arraylist,其中兩個的長是4(testName和testGrade),一個是0-4(testNo)。
<% String count = "0"; %>
<logic:iterate id="index" name="_moduleForm" property="testName" indexId="idx" >
<logic:iterate id="testno" name="_moduleForm" property="testNo" indexId="id">
<logic:equal name="id" value="0">
<logic:equal name="idx" value="0">
<logic:equal name="testno" value="1">
欠
<% count = "1"; %>
<bean:define id="ss" value="1"></bean:define>
</logic:equal>
<logic:notEqual name="testno" value="1">
1
</logic:notEqual>
</logic:equal>
<logic:equal name="idx" value="1">
<logic:equal name="testno" value="2">
欠
<% count = "2"; %>
<bean:define id="ss" value="1"></bean:define>
</logic:equal>
<logic:notEqual name="ss" value="1">
<logic:notEqual name="testno" value="2">
2
</logic:notEqual>
</logic:notEqual>
</logic:equal>
<logic:equal name="idx" value="2">
<logic:equal name="testno" value="3">
欠
<% count = "3"; %>
<bean:define id="ss" value="1"></bean:define>
</logic:equal>
<logic:notEqual name="ss" value="1">
<logic:notEqual name="testno" value="3">
3
</logic:notEqual>
</logic:notEqual>
</logic:equal>
<logic:equal name="idx" value="3">
<logic:equal name="testno" value="4">
欠
<% count = "4"; %>
<bean:define id="ss" value="1"></bean:define>
</logic:equal>
<logic:notEqual name="ss" value="1">
<logic:notEqual name="testno" value="4">
4
</logic:notEqual>
</logic:notEqual>
</logic:equal>
</logic:equal>
<logic:equal name="id" value="1">
<bean:define id="qian" value="<%=count %>"></bean:define>
<logic:equal value="1" name="qian">
<logic:equal name="idx" value="1">
<logic:equal name="testno" value="2">
欠
</logic:equal>
<logic:notEqual name="testno" value="2">
2
</logic:notEqual>
</logic:equal>
<logic:equal name="idx" value="2">
<logic:equal name="testno" value="3">
欠
</logic:equal>
<logic:notEqual name="testno" value="3">
3
</logic:notEqual>
</logic:equal>
<logic:equal name="idx" value="3">
<logic:equal name="testno" value="4">
欠
</logic:equal>
<logic:notEqual name="testno" value="4">
4
</logic:notEqual>
</logic:equal>
</logic:equal>
<bean:define id="qian" value="<%=count %>"></bean:define>
<logic:equal value="2" name="qian">
<logic:equal name="idx" value="2">
<logic:equal name="testno" value="3">
欠
</logic:equal>
<logic:notEqual name="testno" value="3">
3
</logic:notEqual>
</logic:equal>
<logic:equal name="idx" value="3">
<logic:equal name="testno" value="4">
欠
</logic:equal>
<logic:notEqual name="testno" value="4">
4
</logic:notEqual>
</logic:equal>
</logic:equal>
<bean:define id="qian" value="<%=count %>"></bean:define>
<logic:equal value="3" name="qian">
<logic:equal name="idx" value="3">
<logic:equal name="testno" value="4">
欠
</logic:equal>
<logic:notEqual name="testno" value="4">
4
</logic:notEqual>
</logic:equal>
</logic:equal>
</logic:equal>
</logic:iterate>
<logic:iterate id="testname" name="_moduleForm" property="testName" offset="idx" length="1">
<bean:write name="testname" />
</logic:iterate>
<logic:iterate id="testgrade" name="_moduleForm" property="testGrade" offset="idx" length="1" >
<bean:write name="testgrade" />
</logic:iterate> <br>
</logic:iterate>
</body>
</html:html>
本文探讨了如何在JSP页面上使用标签进行双层循环迭代不同长度的ArrayList,并根据ArrayList的内容显示相应的‘欠’字符或数值。通过具体示例展示了如何设置条件判断和变量标记以实现预期的页面输出。
3285

被折叠的 条评论
为什么被折叠?



