Java 从arraylist创建3列html表?
如何从Java 从arraylist创建3列html表?,java,html,jsp,Java,Html,Jsp,如何从ArrayList创建HTML格式的3列表 我当前的代码如下所示: <table border="0"> <% for (int i = 1; i < states.size(); i++) { %> <TR> <% for (int col = 1; col <= 3; col++) {
ArrayList
创建HTML格式的3列表
我当前的代码如下所示:
<table border="0">
<%
for (int i = 1; i < states.size(); i++) {
%>
<TR>
<%
for (int col = 1; col <= 3; col++) {
%>
<TD>
<%
out.println(states.get(i));}
%>
</TD>
</TR>
<%
}
%>
</table>
我遗漏了什么?只是一个小的打字错误。您正在使用“i”进行索引,但您的内部变量是col 将其更改为:
...
out.println(states.get(3*col + i));
...
试试这个,你现在可能需要将你的专栏索引归零。这只是一个小的打字错误。您正在使用“i”进行索引,但您的内部变量是col 将其更改为:
...
out.println(states.get(3*col + i));
...
试试这个,您可能需要现在将列的索引归零。注意:
- 列表中的索引以0开头
- 您需要在检索之前计算索引
<% for (int i = 0; i < states.size(); i++) { %> <TR> <% for (int col = 0; col < 3; col++) { %> <TD> <% int index= (i*3)+col; if(states.size()>index+1) { out.println(states.get(index)); } i = i+1; %> </TD> </TR> <% } %> </table>
索引+1) { out.println(states.get(index)); } i=i+1; %>
- 列表中的索引以0开头
- 您需要在检索之前计算索引
<% for (int i = 0; i < states.size(); i++) { %> <TR> <% for (int col = 0; col < 3; col++) { %> <TD> <% int index= (i*3)+col; if(states.size()>index+1) { out.println(states.get(index)); } i = i+1; %> </TD> </TR> <% } %> </table>
索引+1) { out.println(states.get(index)); } i=i+1; %>
- 请像这样尝试。。只需添加另一个变量,该变量将在从数组列表检索信息时使用
<table border="0">
<%
for (int i = 1, index = 0; i < states.size(); i++) {
%>
<TR>
<%
for (int col = 1; col <= 3; col++) {
%>
<TD>
<%
out.println(states.get(index++));}
%>
</TD>
</TR>
<%
}
%>
</table>
请像这样试试。。只需添加另一个变量,该变量将在从数组列表检索信息时使用
<table border="0">
<%
for (int i = 1, index = 0; i < states.size(); i++) {
%>
<TR>
<%
for (int col = 1; col <= 3; col++) {
%>
<TD>
<%
out.println(states.get(index++));}
%>
</TD>
</TR>
<%
}
%>
</table>
如果我正确地理解了需求(不确定是不是这样),那么类似这样的东西将给您一个开始
<table border="0">
<tr>
<%
for (int i = 1; i < states.size(); i++) {
out.println("<td>" + states.get(i) + "</td>");
if (i>0 && i%3==0) {
out.println("</tr><tr>");
}
}
%>
</tr>
</table>
请注意,它仍然存在问题。如果有“3的倍数”国家,那么在表的末尾将有一个完全空的行。否则,最后一行的列数将不正确。BNI.如果我正确地理解了需求(不确定是不是这样),那么类似这样的内容将给您一个开始
<table border="0">
<tr>
<%
for (int i = 1; i < states.size(); i++) {
out.println("<td>" + states.get(i) + "</td>");
if (i>0 && i%3==0) {
out.println("</tr><tr>");
}
}
%>
</tr>
</table>
请注意,它仍然存在问题。如果有“3的倍数”国家,那么在表的末尾将有一个完全空的行。否则,最后一行的列数将不正确。BNI.您想在其他列中填入什么?所有列和行都应该填入不同的国家/地区。那么是否还有另一个存储国家/地区的变量?看起来有一系列的国家,但我没有看到一系列的国家。你想用加利福尼亚/美国这样的格式来格式化每个单元格吗?对不起,我应该更精确一些。。。我只有1个包含状态的数组,我想在3列表中显示这些状态(无国家/地区;)对不起,我有点困惑,你能提供一个你想要的例子吗?例如,第一行、第二行等中有什么。您想在其他列中放什么?所有列和行都应该用不同的国家/地区填充。那么是否还有另一个存储国家/地区的变量?看起来有一系列的国家,但我没有看到一系列的国家。你想用加利福尼亚/美国这样的格式来格式化每个单元格吗?对不起,我应该更精确一些。。。我只有1个包含状态的数组,我想在3列表中显示这些状态(无国家/地区;)对不起,我有点困惑,你能提供一个你想要的例子吗?例如,第一排、第二排的内容,等等。现在表格看起来是这样的:Col1 Col2 Col3阿拉斯加亚利桑那阿肯色阿拉斯加亚利桑那阿肯色阿拉斯加亚利桑那阿肯色阿拉斯加亚利桑那阿肯色阿拉斯加亚利桑那阿肯色阿拉斯加亚利桑那阿肯色阿拉斯加阿肯色阿拉斯加亚利桑那阿肯色州:哦,我现在明白了。您有一个数组,并且希望将其索引为3x(大小/3)表。好的……现在桌子看起来是这样的:Col1 Col2 Col3阿拉斯加亚利桑那阿肯色州阿拉斯加亚利桑那阿肯色州阿拉斯加亚利桑那阿肯色州阿拉斯加亚利桑那阿肯色州阿拉斯加亚利桑那阿肯色州阿拉斯加州亚利桑那阿肯色州:/噢,我现在明白了。您有一个数组,并且希望将其索引为3x(大小/3)表。好吧……犯了个愚蠢的错误。我已经编辑了答案。请再试一次。犯了一个愚蠢的错误。我已经编辑了答案。请再试一次。不客气。:)顺便说一句,你确定第一个国家被列入名单吗?我怀疑inti=1
应该是inti=0
haha:D我认出了它!但现在我有了第四个专栏,只针对一个国家,不客气。:)顺便说一句,你确定第一个国家被列入名单吗?我怀疑inti=1
应该是inti=0
haha:D我认出了它!但现在我有了第四个专栏,只针对一个国家