为动态表jsp使用if else语句

时间:2012-11-19 05:40:43

标签: java jsp

编辑: 我正在使用以下数据检索数据的arraylist:[category,content,category,content,...],and 我想在JSP页面上显示一个包含动态数据的表:

<tr>
<td align="center">
Category of Tweets:
</td>
<td align="center">
All Tweets of User:
</td>
</tr>

<tr>
<td align="center">
Entertainment
</td>
<td align="center">
Tweet Content
</td>
</tr>

但是使用我在下面的源代码:

<table id="table" border="1" align="center">
<tr>
<td align="center">
Category of Tweets:
</td>
<td align="center">
All Tweets of User: <%out.println(userName); %>
</td>
</tr>
<%
for(int i=0;i<stringList.size();i++){
%>
<tr>
<td>
<%
if(i%2==0){
String category = stringList.get(i).toString();
out.print(category);
%>
</td>
<%}else{ %>
<td>
<%
String content = stringList.get(i).toString();
out.print(content);
}
%>
</td>
</tr>
<%
}
%>
</table>

浏览器似乎在else语句之前复制了额外的表标记:

<td>

</td>
</tr>

<tr>
<td>

</td>

我很失落如何解决这个问题。有人能告诉我应该如何修改代码吗?

4 个答案:

答案 0 :(得分:0)

您在结束条件后结束<td>,然后在其他地方之前开始新的<td>

试试这个,看它是否满足你的预期输出。

<td>
<%
if(i%2==0){
String category = stringList.get(i).toString();
out.print(category);
%>
</td>
<td>
<%
String content = stringList.get(i).toString();
out.print(content);
}
%>
</td>

答案 1 :(得分:0)

假设您所说的“我正在使用以下数据检索数据的arraylist:[category,content,category,content,...]”并且该列表包含对元素,您可以迭代列表,如下所示:

<table id="table" border="1" align="center">
<tr>
<td align="center">
Category of Tweets:
</td>
<td align="center">
All Tweets of User: <%out.println(userName); %>
</td>
</tr>
<%
for(int i=0;i<stringList.size()/2;i++){
%>
<tr>
<td align="center">
<%
String category = stringList.get(i*2).toString(); 
out.print(category);
%>
</td>
<td align="center">
<%
String content = stringList.get(i*2+1).toString(); 
out.print(content);
%>
</td>
</tr>
<%
}
%>
</table>

请注意,类别将迭代位于对位置的元素和0(0,2,4,...),内容将迭代位于奇数位置(1,3,5,...)的元素

答案 2 :(得分:0)

检查此代码,这可能有助于您将这些tr和td标记保存在条件语句中

<table id="table" border="1" align="center">
    <tr>
    <td align="center">
    Category of Tweets:
    </td>
    <td align="center">
    All Tweets of User: <%out.println(userName); %>
    </td>
    </tr>
    <%
    for(int i=0;i<stringList.size();i++){
    %>

    <%
    if(i%2==0){%><tr>
    <td><%
    String category = stringList.get(i).toString();
    out.print(category);
    %>
    </td></tr>
    <%}else{ %>
    <tr>
    <td>
    <%
    String content = stringList.get(i).toString();
    out.print(content);%>
     </td>
    </tr><%
    }

    }
    %>
    </table>

答案 3 :(得分:0)

怎么样

<td>
<%
if(i%2==0){
String category = stringList.get(i).toString();
out.print(category);
}
%>
</td>
<td>
<%
else{
String content = stringList.get(i).toString();
out.print(content);
}
%>
</td>