天天看點

Spring 4與Struts 2項目基于XML的內建實戰 Spring 4與Struts 2項目基于XML的內建實戰

本文主要講述如何将Spring Framework 4.2.1版與Struts 2.3.24.1版通過XML配置進行內建,進而用于Web項目的開發。

Spring是一個企業Java應用開發架構,而Struts 是一個Java Web應用開發架構,這意味着兩者可以結合在一起用于開發Web應用。

Spring MVC是Spring架構的一部分,用于建立Java Web應用,而Struts立足于Java Servlet API的基礎上也使用了MVC架構。是以,當Spring和Struts相內建時,在MVC部分不應該重疊,而應該互相補充。

Spring架構有一個優秀的依賴注入管理,是以可用于管理業務邏輯Bean和Struts的Action Bean。另一方面,我們可以使用Struts負責Web應用的MVC部分。

Struts 2架構提供了一個名為Spring Plugin的插件,通過此插件可以與Spring架構進行內建。此插件提供了這樣的JAR包:struts2-spring-plugin-VERSION.jar,把此檔案放入Web項目中。

要啟用Spring Plugin插件,讓Spring架構通過其反轉控制容器來管理Struts的所有Action Bean,在Spring應用持續上下文配置檔案中進行聲明。這樣,在Struts的配置檔案中,就可以使用Bean的名字來代替原先的“包名+類名”的方式。比如可以這樣:

而原先是這樣:

另外,還可以使用Spring架構的@Autowired注釋讓Spring字段注入依賴進類中。

下面我們開始實戰。

本文使用的工具如下:

Spring 4與Struts 2項目基于XML的內建實戰 Spring 4與Struts 2項目基于XML的內建實戰

修改項目的Facet,調整為Dynamic Web Module (3.0)和Java (1.8) 

Spring 4與Struts 2項目基于XML的內建實戰 Spring 4與Struts 2項目基于XML的內建實戰

聲明Java和Spring架構的版本

添加Spring架構的依賴

添加Struts 2架構的依賴

添加Spring Plugin插件的依賴

添加編譯時所需的Java Servlet & JSP依賴

建立名為User.java的模型類

建立名為UserDAO.java的業務邏輯類:

可見,有效的使用者名為“admin”,密碼為“pwd”。

編寫Struts的Action類LoginAction.java

需要了解:

userDao的Setter方法是供Spring注入實際的實作類

成員變量user的getter和setter方法用于表單與模型對象User的一一對應

方法execute()簡單的重定向到SUCCESS頁面或ERROR頁面

建立名為LoginForm.jsp的頁面

登入成功的LoginSuccess.jsp頁面

登入失敗的LoginError.jsp頁面

web.xml的内容如下

在項目src下建立struts.xml配置檔案

在/WEB-INF/spring目錄下建立名為appContext.xml的配置檔案。

最終項目結構如圖所示: 

Spring 4與Struts 2項目基于XML的內建實戰 Spring 4與Struts 2項目基于XML的內建實戰

可以看到 

Spring 4與Struts 2項目基于XML的內建實戰 Spring 4與Struts 2項目基于XML的內建實戰

輸入“admin”和“pwd”後,可以看到 

Spring 4與Struts 2項目基于XML的內建實戰 Spring 4與Struts 2項目基于XML的內建實戰

如果輸入錯誤,可以看到: 

Spring 4與Struts 2項目基于XML的內建實戰 Spring 4與Struts 2項目基于XML的內建實戰

可見,項目完全工作正常。Spring 4與Struts 2項目基于XML的內建是成功的。

繼續閱讀