最近常常在用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
補充
下圖為我的目錄結構

good
多謝支持
第一次接觸 struts framework,非常清楚,謝謝大大
略盡棉薄之力~有幫到就好
真的很感謝阿,昨天折騰我一整夜沒搞好= = 今天看了你的說明 五分鐘就搞定了QQ 再次感謝
不會不會~有幫到忙就好了
超棒的!! 雖然最近也在拼D3~XD
真好~我都沒時間玩
簡單清楚,真的非常佛心來的!雖然還不知道如何深入應用,至少已經入門,之後就要自己努力了! ^^bb
加油喔,你已經在不歸路了~~
*****
*****
很詳細,非常感謝!
請問一下 我按照您的文章做完了 可是要run的時候都會出現http error 503 請問版大有遇過這樣的問題嗎?
這樣的話可能要請客倌po一下錯誤訊息,才能知道問題的點在哪邊
順便請問一下在您的文章內 "會用到的eclipse plugin 有 SpringIDE 與 Hibernate tools 其中Hibernate tools 為必要的" 這句話的意思? 因為我好像沒有實作到這句話 這是從eclipse marketplace 抓下來的嗎? 感謝
這句話是因為當初在寫的時候,是考慮到要以後跟spring與hibernate才加上去的。 所以是之後才會用到,可是討厭鬼這邊沒有教要怎麼裝,要自己裝才行。 marketplace應該是抓的到~如果沒有的話,去官網也應該會有的
HTTP Status 404 - /leather/index.action type Status report message /leather/index.action Apache Tomcat/7.0.37 我將project使用tomcat跑出來的結果.... 感謝幫忙 description The requested resource is not available.
這個錯誤是說~找不到/leather/index.action這個路徑 還要看看其它配置的東西,struts2的xml以及你的java code 如果方便的話,可以將整個專案寄信到討厭鬼的信箱 nerdyworld@pixnet.net
我還要加入commons-lang3-3.1.jar才能順利執行
那應該是我少寫一個jar檔,不好意思~
請問小弟想開始學SSH請問一下 需要安裝的有STRUTS.Spring.HIBEMATE 可是我抓下來的都是zip檔案耶@@
對~要解壓縮,裡面會有jar檔
我專案丟進去總是跑出這個來 錯誤代碼404 message /struts2/ description :The requested resource is not available. 不知該如何是好
這個錯誤是說,程式找不到/struts2/這個路徑,通常有兩個可能 1、你沒有這個路徑 2、打錯路徑 如果都不是可能就要請你把專案寄給討厭鬼看才行喔,
您好,我試了一個早上,還是出現404找不到jsp檔,能否將專案寄給您,請您幫小弟解惑呢?若方便的話,在麻煩提供EMAIL,感激
設定半天不行,看了版主的 web.xml 之後才知道,原來是自己的版本宣告錯誤,version 必須為 2.5 的才行! 感謝版主的分享~ ^^
謝謝你 這篇文真正的幫助到我的struts的幻境配置 真的是幻境,因為自己摸好久