2010-08-06 64 views
0

我想創建一個表來顯示我從數據庫中拉出來的一些數據到JSP頁面(Struts2應用程序的所有部分),並且我不知道是什麼我做錯了這裏...試圖從ArrayList創建Struts2中的表

這是我的JSP頁面的一部分,我創建表:

<table> 
<s:iterator value="table" id="row"> 
     <tr> 
     <s:iterator value="row" id="cell"> 
       <td><s:property /></td> 
      </s:iterator> 
     </tr> 
    </s:iterator> 
</table> 

我有一個名爲ArrayList<ArrayList<String>>表中我的動作類,我敢確定我已經填充了正確的值。我確信這是一個簡單的語法錯誤,但我仍然是Struts2的初學者。

回答

1

可能需要#字符添加:

做一個測試,看看你的表值返回任何東西:

<table> 
<s:iterator value="%{table}" id="row"> 
     <tr> 
     <s:iterator value="%{#row}" id="cell"> 
       <td><s:property value="%{#cell}"/></td> 
      </s:iterator> 
     </tr> 
    </s:iterator> 
</table> 
+0

表仍然沒有顯示出來?有什麼我需要做,以確保我的Struts元素都能正常顯示(例如,我不得不返回常量NONE得到一些我的其他的以前顯示的頁面)? – 2010-08-06 19:46:44

+0

此外,這可能會有所幫助:當我查看生成的HTML頁面(我嘗試在其中顯示錶格)的源代碼時,我只看到一個

標記,然後關閉
標記,其中沒有任何內容。 – 2010-08-06 20:10:33

+0

對樣本進行了調整 - 請告知我是否可以使用 – 2010-08-09 12:22:38

0

我把你的JSP代碼,並寫了一個getter像這樣的動作,使用你的JSP,它工作得很好。你的JSP代碼很好。你的getter方法或'表'的人口似乎有問題。如果你發佈了,也許我們可以找出它有什麼問題。

public String execute() 
{ 
    m_arrayList = new ArrayList< ArrayList<String> >(); 
    for(int i = 0; i < 10; ++i) { 
     ArrayList<String> strs = new ArrayList<String>(); 

     for(int j = i; j < 10 + i; ++j) { 
      strs.add(Integer.toString(j)); 
     } 

     m_arrayList.add(strs); 
    } 

    return SUCCESS; 
} 

private ArrayList< ArrayList<String> > m_arrayList; 

public ArrayList< ArrayList<String> > getTable() 
{ 
    return m_arrayList; 
}