理解struts 在mvc中的角色

、引入struts包
java

、在WEB-INF目錄下編寫簡單的login.jsp頁面(V層);web

<form action="/Strutstest/login.do" method="post">  apache

   U:<input type="text" name="username"/><br/>  session

   P:<input type="password" name="password"/><br/>  mvc

    <input type="submit" value="login"/>  app

</form>dom

、建立用戶表單類UserForm存放數據(M層,相似domian/javabean層)jsp

Java代碼 ide

/** post

 * 用戶表單類,用於填充數據 

 */  

package com.lh.forms;  

import org.apache.struts.action.ActionForm;  

public class UserForm extends ActionForm {  

    //在這裏爲了規範:定義屬性名時應該和JSP頁面的控件名稱同樣  

    //實際只需保證setget方法和屬性名有關聯 set屬性名  

    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;  

    }  

}

、編寫LoginAction,繼承Action,對應UserForm表單C,處理請求,相似mvc中servlet

Java代碼 

package com.lh.actions

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;  

import  com.lh.forms.UserForm;  

/** 

 * 登錄Action,用於處理登錄請求 

 */  

public class LoginAction extends Action{  

    //execute自動調用,  

    @Override  

    public ActionForward execute(ActionMapping mapping, ActionForm form,  

            HttpServletRequest request, HttpServletResponse response)  

            throws Exception {  

        //Form強轉爲UserForm  

        UserForm userForm = (UserForm)form;  

        String password = userForm.getPassword();  

        if("132".equals(password))  

            return mapping.findForward("OK");  

        else  

            return mapping.findForward("ON");  

    }  

}

、在WEB-INF下新建一個名爲config的文件夾,在config文件夾裏面建立名爲struts-config.xml文件創建Action和ActionForm 的對應關係);

Xml代碼

<?xml version="1.0" encoding="UTF-8"?>  

<!DOCTYPE struts-config PUBLIC "-Apache Software Foundation//DTD struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">  

<struts-config>  

    <!-- 配置表單 -->  

    <form-beans>  

        <!-- name爲表單名字,能夠隨意,建議取名:表單類名的小寫 -->  

        <!-- type用於指定表單類的全路徑 -->  

        <form-bean name="userForm" type="com.lh.forms.UserForm"></form-bean>  

    </form-beans>  

    <!-- 配置action -->  

    <action-mappings>  

<!-- path:未來訪問actionuri name必須和表單名相同,用於關聯某個表單 type:指定action的全路徑-->  

<!-- scope:指定該action對應的表單對象的生命週期爲request級別 ,默認爲session-->  

        <action path="/login" name="userForm" scope="request" type="com.lh.actions.LoginAction">  

            <!-- 這裏配置跳轉關係 name:結果名稱 path:轉發頁面-->  

            <forward name="ok" path="/WEB-INF/ok.jsp"></forward>  

            <forward name="error" path="/WEB-INF/error.jsp"></forward>  

        </action>  

    </action-mappings>  

</struts-config>

   、配置WEB-INF目錄下的web.xml文件,配置struts入口

Xml代碼 

<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/config/struts-config.xml</param-value>  

    </init-param>  

</servlet>  

<servlet-mapping>  

    <servlet-name>action</servlet-name>  

    <url-pattern>*.do</url-pattern>  

</servlet-mapping> 

最後在WEB-INF目錄下編寫ok.jsperror.jsp頁面

Html代碼

<body>  Oh_ my god  </body>

相關文章
相關標籤/搜索