Struts 2 CRUD的最佳实践

Spa*_*bob 3 webforms struts2 crud

所以我在网上发现了一堆Struts 2 CRUD示例:

Struts 2 CRUD演示

还有几本书:

Apache Struts 2 Web应用程序开发ISBN:978-1847193391

Struts 2设计和编程ISBN:978-0980331608

但是他们所有人都对如何进行表格填充有所不同.

有人建议执行Java接口模型驱动Prepareable打电话过来准备功能预先填充任何需要的数据成员.

其他人建议您创建自己的PrepareForUpdate操作,该操作调用预填充函数,然后重定向到主编辑视图.

他们还非常关注如何传递对象标识符以指示要检索的对象以进行编辑.SOme建议拦截器其他人在URL参数中抛出它并通过ActionContext检索它或通过s:hidden字段传递它.

在Struts 2中有没有一种最佳实践方式来进行表单填充?

上述方法有哪些优点/缺点?

Ste*_*tez 6

我不知道有任何记录的最佳实践,但我已经使用Webwork和Struts2大约三年了,所以我可以告诉你我在我的项目中使用了什么.顺便说一句,你链接到的CRUD演示文档让我觉得有些过时(我从项目网站上意识到它).

我将我的CRUD工作分成三个不同的动作:

  • 列出实体的操作.它支持分页并填充某种类型的表或网格视图.
  • 处理添加和编辑功能的操作.使用prepare()方法设置下拉菜单等.
  • 处理删除功能的操作.

有人建议实现Java接口ModelDriven或Prepareable来调用prepare prepare函数来预先填充任何所需的数据成员.

这是我提倡的方法,虽然我没有使用ModelDriven界面.有关详细信息,请查看Struts2 ModelDriven界面的工作原理以及对我的答案的评论.无论您使用ModelDriven与否,都只是个人选择.另外,请查看为什么模型驱动的操作优先于对象支持的bean属性.

其他人建议您创建自己的PrepareForUpdate操作,该操作调用预填充函数,然后重定向到主编辑视图.

我之前没有看到过,根据你的描述,我会避免这种技术.执行重定向并创建其他HTTP请求以实现该prepare()方法旨在处理的相同内容似乎很浪费.

他们还非常关注如何传递对象标识符以指示要检索的对象以进行编辑.

只需传递URL或表单中的标识符即可.这是Web应用程序的标准方法.