在Struts2框架中的处理大概分为以下几个步骤:
1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6、ActionProxy创建一个ActionInvocation的实例。
7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。
在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及ActionMapper 。
扩展资料:
应用流程注解
当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器。
经过Other filters(SiteMesh ,etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。
FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。
ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面。
拦截器(Interceptor N)会再被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。
参考资料:百度百科-Struts 2
Struts中出现404问题。首先,Action找不到是主要的。其中Action找不到的原因很多。编译器问题,Struts配置问题。
编译器问题,重启一下myeclipse。
配置问题就需要注意Action标签的 Action类有没有返回结果,或者你使用了命名空间,URL错误。
你这个应该是命名空间的问题,基本上就是看看页面,看看Action,可以去掉命名空间namespace这个试试。
是不是软件出错了。建议重新下载安装看看,myeclipse2017安装破解说明
注意!下载包中有myeclipse 2017 ci8 windows在线安装包下载以及离线安装包下载,附破解文件,小编建议使用离线下载包进行安装。
1、首先点击“myeclipse-2017-ci-8-online-installer-windows.exe”程序运行安装,点击“next”下一步;
2、选择“我同意”许可协议,点击“next”下一步;
3、选择安装目录,您可以自行选择,小编建议默认,点击“下一步”;
4、选择您的电脑系统32/64位,小编的是64位,点击“next”下一步;
5、正在安装,文件有点大,请等待片刻;
6、安装完成
MyEclipse2017:http://www.xue51.com/soft/1207.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)