将 Struts 1 中的 Action 转换为 Struts 2 等效项
Converting Action in Struts 1 to Struts 2 equivalent
我正在尝试将应用程序从 Struts 1 迁移到 Struts 2。在迁移过程中,我面临以下问题:
有一个 Servlet
扩展了 Struts1 的 ActionServlet
。有许多覆盖方法,其中 super
被称为 process()
,我想知道它等效于转换为 Struts2。因为我没有在 StrutsPrepareAndExecuteFilter
.
中得到它的等价物
我已将所有表单 bean 转换为 ModelDriven
bean,并将所有 Action
转换为扩展 ActionSupport
的 class。还为此在 struts.xml
中输入。
请提供您对以上两个问题的解决方案。
动作执行前process
是运行。覆盖框架 类 的目的是 change/extend 功能。大多数修改都与旧框架有关,可以删除。如果您需要使用一些无法在 Struts2 中替换的代码,那么您应该编写一个自定义拦截器。这是 change/extend Struts2 中的功能而不是 类 覆盖的正常方法。
您可以在 Struts 文档站点上阅读有关 interceptors 的更多信息。
您的架构应该没问题,但是 ModelDriven
可以替换为将 bean 注入控制器。参见 Nullpointerexception while setting a bean。
有时 bean 的范围很重要,例如 Struts1 默认使用会话范围。如果需要的话,你可以用拦截器注入一个 sessionMap
蚂蚁让你的对象保持在会话中,或者像我在 this 问题中所做的那样尝试实现一个会话范围的 bean。
我正在尝试将应用程序从 Struts 1 迁移到 Struts 2。在迁移过程中,我面临以下问题:
有一个
中得到它的等价物Servlet
扩展了 Struts1 的ActionServlet
。有许多覆盖方法,其中super
被称为process()
,我想知道它等效于转换为 Struts2。因为我没有在StrutsPrepareAndExecuteFilter
.我已将所有表单 bean 转换为
ModelDriven
bean,并将所有Action
转换为扩展ActionSupport
的 class。还为此在struts.xml
中输入。
请提供您对以上两个问题的解决方案。
动作执行前process
是运行。覆盖框架 类 的目的是 change/extend 功能。大多数修改都与旧框架有关,可以删除。如果您需要使用一些无法在 Struts2 中替换的代码,那么您应该编写一个自定义拦截器。这是 change/extend Struts2 中的功能而不是 类 覆盖的正常方法。
您可以在 Struts 文档站点上阅读有关 interceptors 的更多信息。
您的架构应该没问题,但是 ModelDriven
可以替换为将 bean 注入控制器。参见 Nullpointerexception while setting a bean。
有时 bean 的范围很重要,例如 Struts1 默认使用会话范围。如果需要的话,你可以用拦截器注入一个 sessionMap
蚂蚁让你的对象保持在会话中,或者像我在 this 问题中所做的那样尝试实现一个会话范围的 bean。