1、導入jar包。
除了導入spring 、struts以及 commons外,還需要導入struts-spring-plugin.jar,如果想用struts註解的話,還需要導入struts-convention-plugin.jar,如果想運用AOP的話,需要導入aspectjrt.jar、aspecttools.jar、aopalliance.jar、aspectjweaver.jar。
2、配置web.xml文件。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置spring -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3、配置struts.xml文件。
如果使用struts註解的話需要添加下面信息。
<!-- struts註解需要定義一下三個 -->
<!-- 定義action的位置 進行掃描的根包,該包會被掃描成action -->
<constant name="struts.convention.action.packages" value="action" />
<!-- 把以Controller結尾的類當成Action處理 -->
<constant name="struts.convention.action.suffix" value="Controller" />
<!-- spring+struts是要寫上,工廠選用spring -->
<constant name="struts.objectFactory" value="spring" />
4、配置applicationContext.xml文件。
如果不使用註解的話,需要配置bean和class關聯。如果使用註解的話,需要配置掃麪包,自動檢測該包下的java類,並把添加註解的類當成bean處理。
<!-- 掃面該包以及子包,把添加註解的java類當成bean -->
<context:component-scan base-package="action,dao,service,bean">
</context:component-scan>
5、Action類。
由spring創建,默認通過byName方式進行自動裝配。在struts配置action配置方式不變,但內部卻已經採用注入。Action類需要對頁面傳值屬性配置setter和getter方法。
6、Action註解。
struts必要的註解,@Namespace("/")在類名上,@Action(value="action名字",results={@Result(name="input\success或者其他",location="/WEB-INF/content/目標頁面"),@Result…})。@Action可以添加在類名上,也可以添加在方法上。根據truts配置的包自動掃描。如果不想寫@Action也可以,只要開啓動態方法調用即可。
7、Spring註解。
@Scope(“”)配置作用域,默認是單例,與配置方式一致。@Controller標註控制器,@Component標註普通類,@Service標註業務邏輯,@Repository標註Dao,@Resource配置依賴(可以配置在set方法上,或變量上,配置在變量上就可以不用寫setter方法了)