Struts 2 是經典的 Java Web MVC 框架,雖然版本較舊,但在維護舊專案時仍常遇到。本文詳細記錄在 MyEclipse 環境下整合 Struts 2.2.1 的步驟,包含 JDK、Tomcat 設定與核心檔案複製修改,助你快速建立可執行的專案骨架。
開啟 MyEclipse,選擇 File > New > Web Project,輸入專案名稱(如 Struts2Demo),目標執行環境選擇已配置好的 Tomcat 版本,完成建立。
若已完成請略過。依序操作:
從官網下載 struts-2.2.1-all.zip 並解壓,完成以下四項動作:
struts.xml來源:struts-2.2.1/apps/struts2-blank-2.2.1.war/WEB-INF/classes/struts.xml
目標:專案的 src 目錄下
複製後請清空 <package> 內容,僅保留基本架構,後續自行新增 Action 映射。
WEB-INF/lib來源:同解壓目錄下的 lib 資料夾
目標:專案的 WebRoot/WEB-INF/lib
將全部 .jar 檔複製過去,專案重新整理後會自動加入建置路徑。
web.xml 註冊核心 Filter在專案的 web.xml 中加入以下片段(請注意版本宣告與命名空間):
<web-app xmlns="https://java.sun.com/xml/ns/javaee"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://java.sun.com/xml/ns/javaee
https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<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>
</web-app>
struts.xml 並新增測試 Action保留 <struts> 根元素與 DTD 宣告,刪除所有預設 <package>,改為:
<struts>
<constant name="struts.custom.i18n.resources" value="globalMessage"/>
<package name="demo" namespace="/" extends="struts-default">
<action name="hello" class="com.demo.HelloAction">
<result>/success.jsp</result>
</action>
</package>
</struts>
同步建立 HelloAction.java 與 success.jsp 即可驗證環境。
WEB-INF/lib 並重新部署。web.xml 的 url-pattern 是否為 /*,以及 Action 的 namespace 與請求路徑是否一致。struts.xml 加入 <constant name="struts.i18n.encoding" value="UTF-8"/>。完成上述步驟後,啟動 Tomcat 並訪問 https://localhost:8080/Struts2Demo/hello.action,若看到成功頁面即代表整合成功。後續即可依業務需求擴充 Action、Interceptor 與 Result Type。