春天整合Struts2的两种方法小结

  

提供了一个ContextLoaderListener,该监听类实现了ServletContextListener接口。该类可以作为侦听器使用,它会在创建时自动查找- inf/下的中文件,因此如果只有一个配置文件且配置文件命名为中,则只需在web . xml文件中增加如下配置片段:

        & lt; !——使用ContextLoaderListener初始化春容器——比;   & lt; listener>   & lt; listener-class> org.springframework.web.context.ContextLoaderListener   & lt;/listener-class>   & lt;/listener>      

如果有多个配置文件需要载入,则考虑使用& lt; context-param…/祝辞元素确定配置文件的文件名,COntextLoaderListener加载时,会查找名为contextConfigLocation的初始化参数,因此配置& lt; context-param…/祝辞时应指定参数名为contextConfigLocation。

        & lt; & # 63; xml version=" 1.0 " encoding=" GBK " & # 63;比;   & lt; web 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 " version=" 3.0 "比;   & lt; context-param>   & lt; param-name>contectCOnfigLocation & lt;/param-name>   & lt; param-value>/web - inf/daocontext.xml,/web - inf/applicationCotext.xml   & lt;/param-value>   & lt;/context-param>   & lt; !——使用ContextLoaderListener初始化春容器——比;   & lt; listener>   & lt; listener-class> org.springframework.web.context.ContextLoaderListener   & lt;/listener-class>   & lt;/listener>   & lt;/web-app>      

春根据配置文件创建WebApplicationContext对象,并将其保存在网络应用的ServletContext中。如果要获取应用中的ApplicationContext实例,则可以根据

  

<>强如下获取:

        WebApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext (servletContext)      

  

当Struts2将请求转发给指定的行动时,Struts2中的该行动只是一个傀,儡他只是一个代号,并没有指定实际的实现类,当然也不可能创建行动实例,二隐藏在该行动下的是春容器中的行动实例,他才是真正处理用户请求的控制器。

  

其中Struts2只是一个伪控制器,这个伪控制器的功能实际由春容器中的控制器来完成,这就实现了让核心控制器调用春容器中的行动来处理用户请求。在这种策略下,处理用户请求的行动由弹簧插件负责创建,但春天的插件创建行动实例时。并不是利用配置行动时指定的类属性来创建该行动实例,而是从春容器中取出对应的Bean实例完成创建。

  

<强> web . xml

        & lt; & # 63; xml version=" 1.0 " encoding=" GBK " & # 63;比;   & lt; web 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 " version=" 3.0 "比;   & lt; !——使用ContextLoaderListener初始化春容器——比;   & lt; listener>   & lt; listener-class> org.springframework.web.context.ContextLoaderListener   & lt;/listener-class>   & lt;/listener>   & lt; !——定义Struts 2的FilterDispathcer的过滤器——比;   & lt; filter>   & lt; filter-name> struts2   & lt; filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter   & lt;/filter>   & lt; !Struts 2——FilterDispatcher用来初始化并且处理所有的WEB请求。——比;   & lt; filter-mapping>   & lt; filter-name> struts2   & lt; url-pattern>/* & lt;/url-pattern>   & lt;/filter-mapping>   & lt;/web-app>      之前      

<强>中

        & lt; & # 63; xml version=" 1.0 " encoding=" GBK " & # 63;比;   & lt; !——春天配置文件的根元素,使用弹簧- bean - 3.0。xsd语义约束——比;   & lt;豆类xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "   xmlns=" http://www.springframework.org/schema/beans "   xsi: schemaLocation=" http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd”比;   & lt; !——定义一个业务逻辑组件,实现类为MyServiceImp——比;   & lt; bean id=癿yService”   类=" com.bh.service.impl.MyServiceImpl "/比;   & lt; !——让弹簧管理的行动实例,因为每个行动里包含请求的状态信息,所以必须配置范围不能为单例——比;   & lt; bean id=發oginAction”类=癱om.bh.action.LoginAction”   范围=霸汀北?   & lt; !——依赖注入业务逻辑组件——比;   & lt;属性名="女士" ref=癿yService”/比;   & lt;/bean>   & lt;/beans>      

春天整合Struts2的两种方法小结