-2

我们的应用程序是使用 Struts2 开发的,并在 JBoss 服务器上运行。

我需要开发一个 JSP 页面,其中将使用存储在会话中的(比如人员对象)中的<s:iterator>标签<s:property>来显示网格的内容。ListArrayList

现在用户可以添加/更新/删除通过迭代会话列表生成的行内容。

例如,如果我有一个大小为 n 的 Peron 对象列表,并且在 JSP 中它显示为

姓名 年龄 联系人

姓名1 24 1234456

姓名2 30 45654634

等等...

用户可以添加/更新/删除任意数量的行,然后最终可以保存。

如何接近这个要求?

4

1 回答 1

1

这很危险......假设电源消失了,会话并没有在任何地方持续存在。

因此,与其更新会话 n 次并最终一次保存数据,不如简单地保存数据 n 次。但前提是防止对数据库的访问过多(可能与成千上万的用户相关),那么您可以像这样使用 AJAX 和 Struts2-JSON-plugin:

  1. 创建一个实现 SessionAware 并从 JSP 接收一行的 AJAX Action(在<package>that 中 extends="json-default"并返回 a <result type="json">);
  2. execute()方法中,从 Session Map 中读取您的 List,添加新行,然后返回 SUCCESS;
  3. 在 JSP 中,创建一个绑定来调用您的 AJAX 操作(单击行中的按钮,onblur 事件,无论您喜欢什么)。
  4. 添加一个按钮来调用另一个动作(AJAX 与否,但它也应该实现 SessionAware)以将数据保存在数据库中。该操作将简单地从会话映射中读取列表并将其保存在数据库中。

这样用户可以更改页面,返回并找到之前输入的所有数据,并且您将避免整个页面的大量 POST(AJAX + JSON 更轻松)。

于 2013-10-03T12:18:30.810 回答