在学习struts的时候,我们一定要掌握struts2的工作原理,只有当我们明确了在struts2框架的内部架构的实现过程,在配置整个struts的框架时,可以很好的进行逻辑上的配置。接下来我就先简单的讲解下struts2的框架工作原理:
1,客户端初始化一个指向Servlet容器(例如Tomcat)的请求;
2,这个请求经过一系列的过滤器(过滤器)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh插件),
3,接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个行动;
4,如果ActionMapper决定需要调用某个行动,FilterDispatcher把请求的处理交给ActionProxy;
5,ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的操作类;
6,ActionProxy创建一个ActionInvocation的实例。
7,ActionInvocation实例使用命名模式来调用,在调用行动的过程前后,涉及到相关拦截器(拦截器)的调用。
8,一旦行动执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个动作链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及到ActionMapper。
1)在Myeclipse中创建一个web项目,并将struts2需要的jar包导入进项目中,如下图
2)在项目中的web . xml中进行配置struts2的框架,在web . xml中需要包含在& lt; filter> & lt;/filter>在该节点下可以包含& lt; filter-name>和& lt; filter-mapin
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt; web version=" 3.0 " xmlns=" http://java.sun.com/xml/ns/javaee " xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd”比; & lt; display-name> & lt;/display-name> & lt; welcome-file-list> & lt; welcome-file> index.jsp & lt;/welcome-file-list> & lt; filter> & lt; filter-name> struts2 & lt; filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter & lt;/filter> & lt; filter-mapping> & lt; filter-name> struts2 & lt; url-pattern> * .action & lt;/filter-mapping> & lt; filter-mapping> & lt; filter-name> struts2 & lt; url-pattern> * .jsp & lt;/filter-mapping> & lt;/web-app> >之前3)编写动作类
4)创建好了动作类中要对行动进行配置struts。xml,注意该配置文件的位置要在src的根目录下
5)创建jsp的文件,进行测试
先来看看struts的基本配置的大概情况
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt; !DOCTYPE struts公共 ”——//Apache软件基金会//DTD Struts配置2.1.7//EN” “http://struts.apache.org/dtds/struts-2.1.7.dtd”在 & lt; struts> & lt;包名称==?薄坝没А泵瓶占淅┱?“struts-default”比; & lt;动作名称=" *用户" class=" com.zzjmay.action。VaildateAction”方法=皗1}”在 & lt;结果名称=俺晒Α痹?success.jsp & lt;结果名称="输入"祝辞/{1}.jsp & lt;/action> & lt;/package> & lt;/struts> >之前从上面的代码中可以看的出,xml中包含的再根节点下& lt; struts> & lt;/struts>下。在实际项目中的编写时,头部信息需要更改,那么我们给以在导入的jar中的jar包中进行获取
在struts-core-2.2.1.1.jar包下的struts2.0。dtd中进行获取。
看着前面的代码可以很清晰的看到包的属性
属性有:
1只,,,名称:逻辑上的包名
2只,,,名称空间:命名空间,用来区分同意struts下的相同行动(注意是一种逻辑上的的路径)
3只,,,延伸:继承某个配置文件
4只,,,摘要
具体使用过程中要注意,有与命名空间的命的名,我们要在相应的过程中加上对应的命名空间的路径,例如:
Struts2的配置struts。xml操作详解