基本的struts1问题:Struts 1中的ActionForm数据来自哪里?

问题描述

我正在维护一个struts 1应用程序,需要找到将ActionForm对象传递给Action类的代码点(或找出方法),该类是我所知道的代码的第一个入口点,但是显然有另一个入口点,其中数据被组装到一个ActionForm对象中,因为Action类入口点方法签名是这样的:

public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,

有想法吗?

解决方法

请求处理器org.apache.struts.action.RequestProcessor

具体方法取决于确切的Struts版本,例如,在Struts 1.2中为process方法,在Struts 1.3中为processActionCreate方法。

自定义请求处理器是Struts 1中众所周知的扩展点。可能值得您花时间进行一些网络搜索,因为这已经很好地覆盖了,但是同样,它是针对特定版本的。

此外,请求处理器通常由不同的扩展点(例如Tiles和Workflow)以不同的方式使用,这导致了Struts 1.3(ComposableRequestProcessor)的某些变化。