【问题标题】:How to update a the contents of a list displayed on JSP using Struts2?如何使用 Struts2 更新 JSP 上显示的列表的内容?
【发布时间】:2011-05-02 09:53:42
【问题描述】:

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

  1. GetDataAction.java -> 从 数据库,填写ArrayList 命名为tableList。成功时, displayData.jsp 已显示。
  2. displayData.jsp -> 使用s:iterate 标签来显示对象的值 在tableList
  3. 用户更改了 displayData.jsp 并按下 更新按钮。在点击 更新按钮, UpdateDataAction.java 被调用。

现在我的问题是;如何在 UpdateDataAction.java 中使用相同的 tableList 来获取修改后的值? 我尝试在 UpdateDataAction.java 中声明一个具有相同名称“tableList”(以及 getter 和 setter)的 ArrayList,但它会引发 NullPointerException。

请提出建议。

【问题讨论】:

  • 如何更新displayData.jsp 中的值?您是否一次更新不止一行?
  • 我仍然需要看看你是如何更新该列表中的值的。你是在每个值之后使用隐藏文本框还是使用某些插件。你能告诉我那部分代码吗?
  • @anu:我只是为每个行项目显示几个测试字段,用户可以在其中输入一些值。
  • 尝试将你的内容放入一个JSON对象中,并通过Ajax发送到服务器端来更新表格的内容。

标签: java jsp struts2


【解决方案1】:

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 中声明一个列表,类型为 &lt;objectNameoftableListType&gt;,即与 tabeList 所代表的对象类型相同。列表的名称必须是 objectName。尝试 Iteate 并检查您是否得到从 jsp 提交的正确值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多