天天看點

Apache Struts 2入門指南Apache Struts 2入門指南

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/48877399

Apache Struts 2入門指南

作者:chszs,版權所有,未經同意,不得轉載。部落客首頁: http://blog.csdn.net/chszs

本文使用最新的Struts 2.3.24.1版,示範了怎樣用Apache Struts 2建構最基本的Web應用。

項目的基本需求:

1)Maven 3.3.3

2)Eclipse Mars.1 Release (4.5.1)

3)Struts 2.3.24.1

一、項目的主體結構

1、建立一Maven項目

Group Id:com.ch.common

Artifact Id:Struts2Example

Packaging:war

2、解決Maven Web項目的一個錯誤

滑鼠右鍵點選項目,選擇”Java EE Tools”->”enerate Deployment Descriptor Stub”,會自動産生WEB-INF子目錄和web.xml配置檔案。

3、導入Struts 2依賴包

項目pom.xml内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.ch.common</groupId>
    <artifactId>Struts2Example</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <dependencies>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.3.24.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>Struts2Example</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
           

4、項目的主體結構如下圖所示

二、JSP頁面

1、編寫JSP登入頁面

包括輸入使用者名和密碼的輸入框、送出按鈕等。

login.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head></head>
<body>
    <h1>Struts 2 Hello World Example</h1>
    <s:form action="Welcome">
        <s:textfield name="username" label="Username" />
        <s:password name="password" label="Password" />
        <s:submit />
    </s:form>
</body>
</html>
           

2、編寫JSP歡迎頁面

登入成功後,進入歡迎頁面。

welcome_user.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head></head>
<body>
    <h1>Struts 2 Hello World Example</h1>
    <h2>
        Hello
        <s:property value="username" />
    </h2>
</body>
</html>
           

3、編寫業務邏輯Action類

Struts 2的Action類,負責所有的業務邏輯。

WelcomeUserAction.java

package com.ch.user.action;
public class WelcomeUserAction {
    private String username;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    // Struts業務邏輯放這裡
    public String execute(){
        return "SUCCESS";
    }
}
           

在Struts 2中,Action類無需實作任何借口或繼承任何類,唯一的要求就是它必須建立一個execute()方法來放置所有的業務邏輯,并且此方法必須傳回String類型的字元串,告知使用者它要重定向到哪裡。

注意:有些開發者實作了com.opensymphony.xwork2.Action類,這取決于你的需求和應用場景,這個類提供了常用的常量值。

4、Struts 2的配置檔案

Struts 2的配置檔案名必須是struts.xml。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="user" namespace="/pages" extends="struts-default">
        <action name="Login">
            <result>login.jsp</result>
        </action>
        <action name="Welcome" class="com.ch.user.action.WelcomeUserAction">
            <result name="SUCCESS">welcome_user.jsp</result>
        </action>
    </package>
</struts>
           

Struts配置檔案聲明了一個包(Package)和封裝的Action類,Action類是自解釋的,下面對配置中的一些内容做一說明:

1)package name=”user”

僅僅定義了一個包名,無需關心它。

2)namespace=”/pages”

這用于比對URL為“/”的通路路徑。

3)extends=”struts-default”

意思是此包繼承自struts-default包元件和攔截器,而這些是在struts-default.xml檔案中聲明的,這個配置檔案位于struts2-core.jar檔案中。

5、web.xml配置

Web應用描述符web.xml檔案的配置如下:

<?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_3_0.xsd"
    version="3.0">
    <display-name>Struts 2 Web Application</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>
    <welcome-file-list>
        <welcome-file>pages/login.jsp</welcome-file>
    </welcome-file-list>
</web-app>
           

6、運作項目

對于Struts 2 Web項目,可以通“.action”字尾直接通路Action。

浏覽器通路:

http://localhost:8080/Struts2Example/pages/Login.action

或者是通路:

http://localhost:8080/Struts2Example/pages/login.jsp

任意輸入使用者名和密碼,

可以看到,通路正常!

繼續閱讀