2011-05-02 49 views
0

我正在使用Struts2來顯示JSP上的對象列表的內容。 事件的流程如下:如何使用Struts2更新JSP上顯示的列表內容?

  1. GetDataAction.java - >取值從 數據庫,名爲tableList ArrayList中 罷了。顯示成功後,將顯示 displayData.jsp
  2. displayData.jsp - >使用s:iterate標記在tableList中顯示對象 的值。
  3. 用戶更改 displayData.jsp中的某些值,並按下 更新按鈕。點擊 更新按鈕, UpdateDataAction.java被調用。

現在我的問題是;如何在UpdateDataAction.java中使用同一個tableList來獲取修改後的值? 我試着在UpdateDataAction.java中聲明一個名爲'tableList'的ArrayList(以及getter和setter),但它拋出了NullPointerException。

請建議。

+0

如何更新'displayData.jsp'中的值?你一次上行不止一行嗎? – anu 2011-05-02 10:21:16

+0

我仍然需要了解如何更新該列表中的值。是否在每個值之後使用隱藏文本框或使用某個插件。是否可以顯示我的代碼部分? – anu 2011-05-02 10:28:13

+0

@anu:我只是簡單地顯示了用戶可以輸入某個值的每個行項目的幾個測試字段。 – 2011-05-02 10:33:19

回答

0

IMO你正在更新的方式不是一個好主意。要麼你應該將每一行鏈接到一個單獨的編輯頁面或使用ajax.There有許多插件可用來更新表值使用ajax,如果你需要我可以提供給你鏈接 回到你做這件事的方式,我想你如下

<s:form action="UpdateDataActionName"> 
<s:iterator value="tableList"> 
<s:textfield name="objectName.propertyName1" value="%(propertyName1)"> 
<s:textfield name="objectName.propertyName2" value="%(propertyName2)"> 
<s:textfield name="objectName.propertyName3" value="%(propertyName3)"> 
</s:iterator> 
<s:submit value="Update"/> 
</s:form> 

現在,在您UpdateDataAction即相同的對象類型,其中tabeList是representing.The名稱聲明<objectNameoftableListType>類型的列表,這樣做是的列表必須是objectName。嘗試重複並檢查您是否從jsp提交了正確的值。