struts2框架入門級Demo(簡易用戶登錄)

struts2框架入門級Demo


剛剛學完了jsp+servlet整合開發,今天剛剛入門struts2,寫了一篇算是入門級的demo,新手可以看一下,本人覺得對以後深入學習struts2框架很有幫助。

額!struts2框架,屬於mvc框架裏面的c(controller控制器)控制層,取代了大量使用jsp的原始工作方式。關於struts2的詳細描述,讀者可以自行百度。

ok,接下來開始講解demo。


首先,需要在web項目中使用struts2框架就要配置web.xml,(只有在web.xml中配置了他才能用啊!)下面給出配置代碼

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Struts2Demo</display-name>
  <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>
</web-app>

定義處理器標籤filter,filtername指定標籤的名字struts2,filterclass指定struts2的處理類。filter-map指定struts2的生效範圍爲對所在web應用中的全部項目生效。


接下來就是配置struts.xml,附上代碼:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>

          <package name="gang" namespace="/" extends="struts-default">
        <action name="login" class="gang.LoginAction">
            <result name="error">/WEB-INF/content/error.jsp</result>
            <result name="success">/WEB-INF/content/welcome.jsp</result>
        </action>
     </package>

    <!-- 第二個程序 跳轉到登錄頁面 -->
    <package name="chen" namespace="/" extends="struts-default">
        <action name="*">
            <result>WEB-INF/content/{1}.jsp</result>
        </action>

    </package>
</struts>

配置struts.xml。package標籤用於定義一個struts的處理塊,其裏面的name定義該塊的名字,namespace定義命名空間,extends定義它繼承的處理塊。

action標籤定義行爲,name爲行爲的名字,class爲執行該行爲的類。

result標籤用於針對class指定的類處理後返回的結果進行指定的視圖頁面的跳轉。


配置完兩個xml配置文件之後。首先先寫一個簡易的jsp登錄頁面。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><s:text name="loginPage"/></title>
</head>
<body>
<s:form action="login">
    <s:textfield name="username" key="用戶名"/>
    <s:textfield name="password"  key="密碼"/>
    <s:submit key="登錄"/>
</s:form>
</body>
</html>

該jsp頁面很簡單。不過注意要用struts2的標籤,所以在開頭先聲明
<%@taglib prefix=”s” uri=”/struts-tags”%>導入標籤庫。

在定義表單的action=login。額,jsp就是這麼多。


接下來就是創建action類了,最關鍵的一步。
先貼代碼。

package gang;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{

    //定義請求參數的username和password
    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;
    }
    //定義用戶請求的executor方法
    @Override
    public String execute() throws Exception {
        if(getUsername().equals("chengang")
                &&getPassword().equals("123456"))
        {
            ActionContext.getContext().getSession()
            .put("user", getUsername());
            return SUCCESS;
        }
        return ERROR;

    }

}

定義一個名爲loginaction的類 他繼承actionsupport類,
第一步 //定義請求參數的username和password。

第二步 //定義用戶請求的executor方法
該類的代碼很簡單 。判斷用戶輸入的用戶名和密碼是不是正確 正確返回success,錯誤返回error。再傳給struts.xml根據返回的參數跳轉相應的result。


ok,基本搞定,關於一個成功跳轉的頁面和一個失敗跳轉的頁面由讀者自己的需求自己搞定,很簡單。

新手demo結束。

注:struts.xml要放在src目錄下,即和java包同一目錄。本文中java包名爲chen,本文中的所有jsp全在WEB-INF/content目錄下。

—-jeker-chen
2016/5/20

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章