如何使用Struts2更新JSP上显示的列表的内容?

时间:2011-05-02 09:53:42

标签: java jsp struts2

我正在使用Struts2来显示JSP上对象列表的内容。 事件流程如下:

  1. GetDataAction.java - >从中获取值 数据库,填写ArrayList 名为tableList。在成功, 显示displayData.jsp
  2. displayData.jsp - >使用s:iterate标记显示对象的值 在tableList
  3. 用户更改了一些值 displayData.jsp并按下。{ 更新按钮。点击即可 更新按钮, UpdateDataAction.java 被调用。
  4. 现在我的问题是;如何在UpdateDataAction.java中使用相同的tableList来获取修改后的值? 我尝试在UpdateDataAction.java中声明一个名为'tableList'的ArrayList(以及getter和setter),但它会抛出NullPointerException。

    请建议。

1 个答案:

答案 0 :(得分:0)

IMO你更新的方式不是一个好主意。你应该将每一行链接到一个单独的编辑页面或使用ajax。有很多插件可用于使用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中声明一个类型为<objectNameoftableListType>的列表,即tabeList所代表的相同对象类型。列表的名称必须为objectName。尝试Iteate和检查您是否从jsp提交了正确的值。