Apache Struts 2入門指南

jopen 8年前發布 | 11K 次閱讀 Struts2 Web框架

本文使用最新的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
這里寫圖片描述
任意輸入用戶名和密碼,
這里寫圖片描述
可以看到,訪問正常!

來自: http://blog.csdn.net/chszs/article/details/48877399

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!