Struts框架

struts是一個基於MVC的Web開發框架。使用Struts的目的是爲了幫助咱們減小在運用MVC設計模型來開發Web應用的時間。若是咱們想混合使用Servlets和JSP的優勢來創建可擴展的應用,struts是一個不錯的選擇。
那麼學習struts首先就是要理解它的框架實現原理,以及如何搭建它的開發環境。
正如上所說,struts是基於MVC的,其框架原理以下:
ActionServlet  是一箇中央控制器,核心控制類,它與通常的servlet同樣繼承與HttpServlet。
ActionForm  用於頁面收集數據,其實能夠理解爲頁面數據的實體類。而且它能夠自動轉換成相應的數據類型,如age是int類型,那麼從ActionForm獲取getAge時的類型也會是int類型,而不用之前相似(Integer)request.getAttribute("age")那樣強制轉換了。須要注意的是ActionForm的get、set方法後的名稱必須與頁面中數據名稱相同,且首字母大寫,(如:頁面爲age,ActionForm中則爲getAge、setAge)
Action  是業務邏輯層控制器,返回類型爲ActionForward,他是底層Model的核心控制類,根據業務邏輯來組建表單數據與Model層的交流調用,處理完業務邏輯後返回最終要轉向的頁面信息ActionForward類。
ActionForward  是封裝了頁面轉向信息的一個對象,也能夠看作是一個實體類。目的是方便信息傳遞和調用。

Struts環境搭建
1. 首先要下載struts的jar包,地址 http://struts.apache.org/
2. 解壓後將lib文件夾裏的jar包都加入到項目中
3. 在webapps文件夾中解壓struts-blank.war,將其中的struts-config.xml拷貝到項目中
4. 配置web.xml部署ActionServlet。這個格式是相對固定的,因此通常複製便可
<servlet>  
    <servlet-name>action</servlet-name>  
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
    <init-param>  
        <param-name>config</param-name>  
        <param-value>/WEB-INF/struts-config.xml</param-value>  
    </init-param>  
    <init-param>  
        <param-name>debug</param-name>  
        <param-value>2</param-value>  
    </init-param>  
    <init-param>  
        <param-name>detail</param-name>  
        <param-value>2</param-value>  
    </init-param>  
    <load-on-startup>2</load-on-startup>  
</servlet>  
   
<servlet-mapping>  
    <servlet-name>action</servlet-name>  
    <url-pattern>*.do</url-pattern>  
</servlet-mapping>  

5. 配置struts-config.xml部署Action、ActionForm。其中type均爲你項目中Action和ActionForm所在包的完整路徑;name能夠隨便起,可是Action中的name必須與它用到的ActionForm的name相一致;再有就是action中要添加scope="request"這個屬性,由於scope默認是session,這個能夠根據實際狀況本身定。java

<struts-config>  
    <form-beans>  
        <form-bean name="loginForm" type="com.wang.struts.LoginActionForm"></form-bean>  
        <!-- 能夠有多個ActionForm -->  
    </form-beans>  
   
    <action-mappings>  
        <action path="/login" type="com.wang.struts.LoginAction" name="loginForm" scope="request">  
            <forward name="success" path="/login_success.jsp"></forward>  
            <forward name="error" path="/login_error.jsp"></forward>  
        </action>  
        <!-- 能夠有多個Action -->  
    </action-mappings>  
</struts-config>  

 6. 必須繼承Action的類。代碼示例:web

package com.wang.struts;  
   
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
   
import org.apache.struts.action.Action;  
import org.apache.struts.action.ActionForm;  
import org.apache.struts.action.ActionForward;  
import org.apache.struts.action.ActionMapping;  
   
public class LoginAction extends Action {  
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {  
        LoginActionForm loginActionForm = (LoginActionForm)form;  
        String username = loginActionForm.getUsername();  
        String password = loginActionForm.getPassword();  
        if ("admin".equals(username) && "admin".equals(password)) {  
            return mapping.findForward("success");  
        } else {  
            return mapping.findForward("error");  
        }  
    }  
}  

 7. 必須繼承ActionForm的類。示例代碼:apache

package com.wang.struts;  
   
import org.apache.struts.action.ActionForm;  
   
public class LoginActionForm extends ActionForm {  
    private String username;  
    private String password;  
    public String getUsername() {  
        return username;  
    }  
    public void setUsername(String username) {  
        this.username = username;  
    }  
    public String getPassword() {  
        return password;  
    }  
    public void setPassword(String password) {  
        this.password = password;  
    }  
}  

 

8. login.jsp、success.jsp、error.jsp這三個頁面略。須要注意的就是login.jsp中的頁面元素要注意與ActionForm中的對應。
 
好啦,這樣struts的環境框架就基本搭建好了。以上這都是學習Struts的基礎,所以必須多加練習呀。
相關文章
相關標籤/搜索