最近常常在用SSH架構
也就是所謂的Struts2 + Spring + Hibernate
也常常找不到一些有用的資料
所以討厭鬼決定要來寫一個詳細的建置步驟
因為要講的比較詳細~所以討厭鬼這篇就只講Struts2的建置方法
下面的東西為之後會用的的部份~看各位客倌要不要先去網路上抓,或是等之後講到時再去抓也可以
首先我用的環境是 eclipse-helios-SR2-X86_64 + JDK1.6.031(64位元) +tomcat6.0.35(64位元)
會用到的eclipse plugin 有 SpringIDE 與 Hibernate tools 其中Hibernate tools 為必要的
因為要講的比較詳細,所以這邊要到用的jar檔只先講Struts2會用到有以下
struts2-core-2.2.3.jar
xwork-core-2.2.3.jar
commons-lang-2.5.jar
commons-fileupload-1.2.2.jar
freemarker-2.3.16.jar
ognl-3.0.1.jar
javassist-3.11.0.GA.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
以上是配置Struts2 所必備的jar檔
將這些jar檔放置在 WEB-INF底下lib資料夾當中
接者來配置WEB-INF底下web.xml
在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>
以下是我的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<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>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
接下來設定 struts.xml
在src目錄底下建立 struts.xml
並加入
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="xxxxxxxx" extends="struts-default">
<action name="xxxx" class="xxxx.xxxx" method="xxxx">
<result name="success">xxxx.jap</result>
</action>
</package>
</struts>
以上xxxx的部份可以自己命名
class="xxxxx.xxxxx" 的部份需要對應到src底下的java檔
method="xxxx" 則是java檔裡的函式名稱
我的配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="index" class="nerdy.action.IndexAction" method="index">
<result name="success">/index/index.jsp</result>
</action>
</package>
</struts>
因為我在class這個地方命名了nerdy.action.IndexAction
所以我要在src底下的nerdy.action package建立IndexAction.java
而我在method這個地方命名了index
則需要在IndexAction.java裡面建立一個名為index的method
我的IndexAction.java如下
package nerdy.action;
public class IndexAction {
public String index() {
return "success";
}
}
當中return "success"; 是為了要與 struts.xml 中的 <result name="success">/index/index.jap</result> 的success
也就是說如果return是打error的話就不會返回到/index/index.jap這一頁,也會因為找不到result name ="error" 而報404錯
因為我在struts.xml中打了<result name="success">/index/index.jap</result>
所以我要在webContent底下建立一個叫index的資料夾,並在資料夾中建立一個index.jsp
打開index.jsp在<body></body>中打上 歡迎來到Struts的世界
接著將專案放到tomcat上面
放上去以後再網址列打上http://localhost:8080/xxxxxx/index.action
xxxxxxx為專案名稱
恭喜你網頁跑出來了
你已經會struts的基本架構了
當然Strtus2的用法不止止是這些
等到把SSH架構都用好了以後會再說明要如何去使用Struts2的tag
補充
下圖為我的目錄結構
留言列表