1. 程式人生 > >Struts2入門示例教程

Struts2入門示例教程

回顧Struts2的使用過程,網上搜的教程多多少少都會有點問題,重新記錄下建立過程,方便查閱。

1、下載Struts2的jar包

我用的是struts-2.3.14-all.zip這個版本

2、建立一個web project專案

下面給出所有檔案均建立完成後的工程師圖。


3、匯入Struts2所需jar包

因為只是示例程式,只需要匯入Struts 2支援最小的包就可以了,網上很多教程中新增的最小包都有出入,教大家一個保險的方法。

解壓剛才下載的壓縮包struts-2.3.14-all.zip,在apps資料夾下有個struts2-blank.war包,開啟它,到WEB-INF/lib目錄下,如下圖所示,即為所需的最小包。包含的包應該和具體的Struts版本有關。


4、配置web.xml

下面進入到具體的配置編碼階段。

開啟web.xml,修改配置引數,修改後的具體配置如下。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>	
  
  <!-- Struts2配置 -->
  <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-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

Since Struts 2.1.3, use StrutsPrepareAndExecuteFilter instead or StrutsPrepareFilterand StrutsExecuteFilter if needing using the ActionContextCleanUp filter in addition to this one..即,從Struts 2.1.3起已被標註為過時的,改用StrutsPrepareAndExecuteFilter。
我剛用這個版本的時候還是填的org.apache.struts2.dispatcher.FilterDispatcher
結果報錯

***********************************************************************
*                               WARNING!!!                            *
*                                                                     *
* >>> FilterDispatcher <<< is deprecated! Please use the new filters! *
*                                                                     *
*           This can be a source of unpredictable problems!           *
*                                                                     *
*              Please refer to the docs for more details!             *
*            http://struts.apache.org/2.x/docs/webxml.html            *
*                                                                     *
***********************************************************************

如果你也遇到如上的錯誤,要仔細再檢查下了。

5、配置struts.xml

下面需要建立struts.xml檔案,配置strust2要呼叫的action。直接新建在src目錄下,那樣部署的時候會自動釋出到WEB-INF/classes目錄下,或者直接建立在WEB-INF/classes目錄下面。
<?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="struts2" extends="struts-default">
            <action name="HelloWorld" class="tutorial.HelloWorld">
                <result>/HelloWorld.jsp</result>
            </action>
        </package>
    </struts>

其中,package元素,作用類似於Java包的機制,他是用於分門別類的一個工具,extends屬性如他的名字一樣,它繼承了struts-default這個包的所有資訊,一般我們自己建立一個包最好都繼承它,因為他為我們提供了絕大部分的功能,你可以在struts2-core的jar包中的struts-default.xml檔案中找到這個包。action元素對應與你的表單,例如你的表單的action="welcome",那麼該表單提交後就會將引數交予action的name="welcome"的實現類處理。result元素為action的結果,它由動作類返回的控制欄位選擇。

6、寫action類(HelloWorld.java)

這個類主要用於struts2跳轉到這個action後。預設執行execute()方法。並根據結果返回字元,然後struts.xml根據返回的字元跳到相應的頁面
package tutorial;
import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport
{
    public final static String MESSAGE = "Struts2 is up and running ...";
    
    private String message;


    /**
     * @return the message
     */
    public String getMessage()
    {
        return message;
    }


    /**
     * @param message the message to set
     */
    public void setMessage(String message)
    {
        this.message = message;
    }


    public String execute() throws Exception
    {
        setMessage(MESSAGE);
        return SUCCESS;
    }
}

7、寫jsp頁面

新建一個jsp頁面來呈現資訊。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
  <head>    
    <title>Hello World!</title>    
  </head>
  
  <body>
    <h2><s:property value="message" /></h2>
  </body>
</html>

8、部署執行


在Tomcat中執行該專案,然後開啟瀏覽器,在位址列中輸入:http://localhost:8080/Struts2Demo/HelloWorld
IE效果如下。


至此,最簡單的Struts2的使用方法介紹完畢。

相關推薦

Struts2入門示例教程

回顧Struts2的使用過程,網上搜的教程多多少少都會有點問題,重新記錄下建立過程,方便查閱。 1、下載Struts2的jar包 我用的是struts-2.3.14-all.zip這個版本 2、建立一個web project專案 下面給出所有檔案均建立完成後的工程師

java--Struts2入門示例教程(五)

今天在做一個Struts2的簡單例項,樓主看的是大學教科書-《JavaEE基礎實用教程》第三章的例子。 由於書有些老了,加上Struts框架又做了一些更新。所以有些地方需要拿出來說下,讓新人夥伴們能少走點彎路,更不要~~因為執行後的報錯會灰心喪氣放棄學習的信心

後端開發基礎-Struts2框架學習-001—Struts2入門示例(HelloWorld)

Struts2入門示例(HelloWorld) 核心元件: StrutsPrepareAndExecuteFilter 演示案例  演示工程目錄結構 需要匯入Tomcat類庫或者新增ja

Docker第八篇-docker-compose教程(介紹,安裝,入門示例

文章目錄 docker-compose介紹 docker-compose安裝 安裝docker(已安裝最新的請忽略此步驟) docker-compose安裝與解除安裝 docker-compose簡單示例 d

struts2入門到精通教程

為什麼要使用struts2以及Servlet的缺點 servlet的缺點: 1、寫一個servlet需要在web.xml檔案中配置8行,如果一個系統中servlet很多,則會導致 web.xml檔案中的內容很多 2、在專案中很多

Daydream VR入門基礎教程,通過GVR示例SimpleVrPanorama製作VR全景圖形應用

dependencies { compile project(':libraries-common') //Google VR API的公共程式碼。 compile project(':libraries-commonwidget') //Google VR API的公共元件。 com

struts2入門教程三(上傳與下載)

package action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.struts2.ServletActionContext; im

Spring Batch 入門示例教程

我將向您展示如何使用Spring Boot建立一個的Spring Batch的Hello World示例。 (循序漸進) 因此,如果您是Spring Batch的初學者,您一定會喜歡本指南。 準備好了嗎? 如果您想了解更多關於Spring Batch的資訊,請訪問Spring Batch教程頁面。 1.Sp

linux學習入門標準教程(2)

linux標準教程Linux系統篇2.1 Linux系統管理經過前兩章的學習,咱們現已可以獨立裝置Linux體系,現已把握了Linux學習的竅門,那接下來,咱們將體系的來了解Linux體系各目錄、權限及常用命令的運用。2.1. 1 Linux目錄初識通過前面的學習,我們已經能夠獨立安裝完一個linux

Struts2入門介紹(二)

輸入 clu ons dom 訪問路徑 訪問 filter pri locale 一、Struts執行過程的分析。   當我們在瀏覽器中輸入了網址http://127.0.0.1:8080/Struts2_01/hello.action的時候,Struts2做了如下過程:

Python入門系列教程(二)

字符 小寫 無符號 bsp div width raw_input abc body 字符串 1.字符串輸出 name = ‘xiaoming‘ print("姓名:%s"%name) 2.字符串輸入 userName = raw_input(‘請輸

Python入門系列教程(五)函數

st3 python入門 test print 缺省 .com 教程 技術 log 全局變量 修改全局變量 a=100 def test(): global a a=200 print a 多個返回值 缺省參數 d

MVC 5 + EF6 入門完整教程14 -- 動態生成面包屑導航

maps setting i++ log item 文檔 應該 動態生成 內容 上篇文章我們完成了 動態生成多級菜單 這個實用組件。 本篇文章我們要開發另一個實用組件:面包屑導航。 面包屑導航(BreadcrumbNavigation)這個概念來自童話故事"漢賽爾和格萊特"

MVC5+EF6 入門完整教程

taf bag details 視圖 clu role pre 階段 驗證 前一陣子臨時有事,這篇文章發布間隔比較長,我們先回顧下之前的內容,每篇文章用一句話總結重點。 文章一 MVC核心概念簡介,一個基本MVC項目結構 文章二 通過開發一個最基本的登錄界面,介紹了如何從C

MVC5+EF6 入門完整教程12--靈活控制Action權限

全局 基本功 -1 str 條件 context tac 完整 suse 大家久等了。 本篇專題主要講述MVC中的權限方案。 權限控制是每個系統都必須解決的問題,也是園子裏討論最多的專題之一。 前面的系列文章中我們用到了 SysUser, SysRole, SysUserR

MVC5+EF6 入門完整教程

好的 ring 改變 替換 使用 需要 註釋 mod num 本篇我們針對表格顯示添加一些新功能。 前面我們已經講解過表格顯示數據了,現在我們添加三個常用功能: 對顯示結果進行排序、過濾、分頁。 文章提綱 理論基礎/前置準備 詳細步驟 總結 前置準備 – 應

MVC5+EF6 入門完整教程

crud 新建 用戶角色 tro mic acc where shtml pos 本篇是第一階段的完結篇。 學完這篇後,你應該可以利用MVC進行完整項目的開發了。 本篇主要講述多表關聯數據的更新,以及如何使用原生SQL。 文章提綱 多表關聯數據更新 如何使用原生SQ

dubbo入門示例

zookeeper 執行 .html protocol ner 自己 ons registry can 本文主要介紹阿裏dubbo的基本使用,關於dubbo的相關基礎概念請自行參考dubbo官網:http://www.dubbo.io dubbo是一個服務治理的框架,在如今

全網首創ISE入門教程

加法 表示 cnblogs htm padding 九月 雲服務器 對他 實驗   轉眼間我已經大三了,現在成為了實驗室的負責人,對於下一屆學生的納新重任就交到了我的手上,想采取不同的方法暑假就可能對他們進行一些培訓,所以制作了此教程,說實話,在網上還沒有找到關於ISE的

struts2入門---ActionContext

string struts2入門 ext 簡單 attribute contex 指定 == 不出 1.開發環境搭建 2.簡單應用 我們在index.jsp裏面這樣寫: <a href="TestActionContext.action?name=zhoujing&a