首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 2 入門與首個應用程式快速建構實戰

     編輯:Java 相關知識

Struts 2 是融合 Struts 1 與 WebWork 的 MVC 框架,其核心處理流程為:瀏覽器發請求 → 核心控制器依 struts.xml 尋找 Action → 攔截器鏈套用通用功能(工作流、驗證等) → 呼叫 Action 指定方法(預設 execute()) → 將結果響應瀏覽器。

Struts 2 vs Struts 1 vs WebWork

  • Struts 2 = WebWork 2.3 + Struts 1 相容層
  • 不再內建 IOC 容器,改用 Spring IOC
  • WebWork 原有 AJAX 標籤改以 Dojo 取代
  • 運行機制與 Struts 1 差異極大,核心基於 WebWork 的攔截器與值棧架構

快速建立第一個 Struts 2 專案

環境準備

  1. 下載 Struts 2 發布包(官網),解壓 struts2-blank-xxx.war 取得所有 JAR。
  2. MyEclipse 建立 Web Project。
  3. 將 blank 專案 lib 目錄下所有 JAR 複製至專案 WEB-INF/lib。

配置核心過濾器

於 web.xml 註冊 Struts 2 核心過濾器(Struts 2.1+ 版本類別名稱):

<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>

建立 JSP 頁面

login.jsp(表單提交至 test.action):

<%@ page language="java" pageEncoding="gbk"%>
<html><body>
<form action="test.action" method="post">
  用戶名:<input type="text" name="username"><br>
  密碼:<input type="text" name="pwd"><br>
  <input type="submit" value="Submit">
</form>
</body></html>

ok.jsp 與 no.jsp 分別顯示「OK!!」與「NO!!」。

建立 Action 類別

com.struts2.action.TestAction:屬性名稱對應表單欄位(username、pwd),提供 getter/setter。execute() 比對帳密相等回傳 "OK",否則 "NO"。

package com.struts2.action;
public class TestAction {
    private String username, pwd;
    public String execute() {
        return username.equals(pwd) ? "OK" : "NO";
    }
    // getter/setter 略
}

配置 struts.xml

置於 src 根目錄:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "https://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
  <package name="default" namespace="/" extends="struts-default">
    <action name="test" class="com.struts2.action.TestAction">
      <result name="ok">/ok.jsp</result>
      <result name="no">/no.jsp</result>
    </action>
  </package>
</struts>

部署與測試

  1. 啟動應用伺服器(Tomcat/Jetty 等)。
  2. 瀏覽器訪問 https://localhost:8080/專案名/login.jsp。
  3. 輸入相同帳密 → 跳轉 ok.jsp;不同 → 跳轉 no.jsp。

核心觀念總結

  • Action 必須提供 execute() 方法(或在 struts.xml 指定 method 屬性)。
  • 回傳字串對應 struts.xml 中 <result name="..."> 導向的視圖頁面。
  • Struts 2 自動依名稱綁定表單參數至 Action 屬性(需提供 setter)。
  • 攔截器鏈提供驗證、工作流、檔案上傳等橫切關注點,無侵入業務邏輯。

更多進階特性(驗證框架、類型轉換、OGNL 表達式、標籤庫、AJAX 整合等)將於後續文章深入探討。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved