2012-11-19 37 views
0

編輯: 我正在檢索數據的數據列表像列表:[category,content,category,content,...]和 我想在JSP上顯示一個表像這樣的動態數據頁:使用if語句動態表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> 

我迷失在如何解決這個問題。有人告訴我應該如何修改代碼?

回答

0

假設你說的話:「我檢索數據的ArrayList中包含的數據:[類別,內容,類別,內容,...]」,而且列表中包含對元素可以迭代列表一樣呈現下面:

<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,2,4,...)位於一對位置和0個元素和內容將迭代上位於奇數位置的元件(1,3,5, ...)

+0

@ user1828401如果您需要每個類別的行和每個內容的行,請簡單地將我的代碼替換爲<012>。在暴露的代碼中,只存在一行有兩列(類別,內容),因爲我試圖反映你所要求的表格。 – sgroh

+0

謝謝你的作品! – user1828401

+0

完美!你可以清理一些CSS文件中的td標籤的代碼,或者如果你可以使用一些自定義類,那麼可以更好。乾杯。 – sgroh

0

你之後如果條件,然後開始一個新的<td> else之前你結束<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> 
+0

這樣做是在1個row.What我想顯示一切都顯示1行僅類別,以及其它行只有內容。 – user1828401

+0

如果你想兩者都比你爲什麼使用'else'只是檢查我編輯的答案。 – Abubakkar

+0

看看我編輯過的帖子,不要更清楚地描述這個場景。 – user1828401

0

檢查此代碼,這可能會幫助您將這些tr和td標籤保留在有條件的狀態TS

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