簡單說他的目的就是要減少運用 MVC model 開發的 WEB AP 的時間
在學習上這個 Framework 比較容易,比起 Hibernate 和 Spring 來說......
針對
1. Controller,Struts 統一將所有的請求不論是GET 或 POST 一律轉送到 ActionServlet而 ActionServlet 則透過組態檔 Struts-config.xml
來進行各個請求的配置
2. View,Struts 同樣提供了很多的 JSP 標籤庫
3. Model,主要分為 Action Form、JavaBean or EJB、Action
接下來介紹一下要怎嚜讓你能使用 Struts
首先先到官網下載 http://jakarta.apache.org/,選擇版本之後
只需下載 Full Distribution 文件就好了
下載完成後市一個 ZIP 檔,解壓縮後裡面的 lib 資料夾就是所有的類別庫了
基本上我使用的是 NetBeans 6.8,其中內建已經有 Struts 1.3.8 了
所以我就來介紹一下在 NetBeans 下如何建立一個 Struts
首先
New Project > Java WEB > WEB Application >輸入專案名稱和選擇伺服器之類的
Next > 勾選 Struts 1.3.8 之後下面會出現幾個設定
其中有一個名稱叫做 Action URL pattern 預設是 *.do
也就是你的請求如果是 .do 結尾的都會透過 ActionServlet
另外一個名稱叫做 Application Resource 預設是 com.myapp.struts.ApplicationResource
這個是資源檔 ApplicationResource 是檔名,前面的那串是路徑而副檔名為 .properties
接著建立好之後,就可以來撰寫第一個 Struts 了
我們先在根目錄下建立一個 first 資料夾 (((不一定要 我的習慣 : )
在 first 目錄下新增一個 login.jsp 以下是大致內容
<form action="/funinStruts/login.do" method="get" >
User : <input type="text" name="user" /><br />
<input type="submit" value="SEND" />
</form>
注意 form 的 action 屬性"/funinStruts/login.do"
funinStruts 是我的 WEB AP 名稱
所有請求 *.do 都會透過 ActionServlet,所以在來看看組態檔的設定
以上的 action 標籤設定了 path 屬性值為"/login" 表示所有請求 login.do 的請求
都會呼叫type設定的 LoginAction 來處理
而 forward 標籤則是呼叫完 Action 後所轉發的資源
接下來是 LoginAction 的程式:
package fsc.first; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; //Action 必須繼承 org.apache.struts.action.Action public class LoginAction extends org.apache.struts.action.Action { //與組態檔中設定的 forward 標籤的 name 屬性一樣的值 private static final String SUCCESS = "success"; private static final String ERROR = "error"; //覆寫 execute method, 回傳值是一個 ActionForward 物件 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { if(request.getParameter("user").equals("ayu")){ return mapping.findForward(SUCCESS); //透過 mapping 找出轉發資源 }else{ return mapping.findForward(ERROR); } } }
最後再 first 下各便建立一個 success.jsp 和 error.jsp
如果在 login.jsp 輸入的不是 ayu 就會被轉送到 error.jsp
沒有留言:
張貼留言