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

Struts 2 框架配置詳解:從 package 到 Action 實作

     編輯:Java 相關知識

Struts 2 核心組件概覽

Struts 2 是基於 MVC 模式的 Web 框架,核心組件包括 Action(業務處理)、Interceptor(攔截器,處理橫切關注點)與 Result(結果視圖)。框架透過「包」來管理這些組件,每個包可包含多個 Action、攔截器與攔截器引用。

struts.xml 關鍵配置屬性

在 struts.xml 中,<package> 元素定義一個模組化配置單元,常用屬性如下:

  • name(必填):包的唯一識別名稱。
  • extends(選填):繼承其他包,常用 struts-default 以獲得預設攔截器堆疊與結果類型。
  • namespace(選填):定義命名空間,對應 URL 路徑前綴,如 /manage。

開發環境快速建置

  1. 建立 Web 專案。
  2. 右鍵專案 → MyEclipse → Add Struts Capabilities。
  3. 選擇 Struts 2.1 版本,勾選所需庫(如 JSON、Convention 等),完成匯入。

實作範例:登入與註冊功能

1. Action 類別

package org.example.struts2.action;

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

public class UserAction extends ActionSupport {
    private String username;
    private String password;
    private String message;

    // Getter/Setter 略

    public String login() {
        if ("admin".equals(username) && "123456".equals(password)) {
            message = "登入成功,歡迎 " + username;
            ActionContext ctx = ActionContext.getContext();
            if (ctx.getSession().get("user") != null) {
                message = username + ":您已經登入過了!";
            } else {
                ctx.getSession().put("user", username);
            }
            return SUCCESS;
        } else {
            message = "登入失敗,帳號或密碼錯誤";
            return ERROR;
        }
    }

    public String register() {
        // 這裡可整合 Service 層寫入資料庫
        message = "註冊成功";
        return SUCCESS;
    }
}

2. struts.xml 配置

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "https://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="userModule" extends="struts-default" namespace="/manage">
        <action name="userOpt" class="org.example.struts2.action.UserAction">
            <result name="success">/success.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>

3. JSP 頁面

index.jsp(登入)

<form action="manage/userOpt!login.action" method="post">
    <table>
        <tr><td>帳號:</td><td><input type="text" name="username"/></td></tr>
        <tr><td>密碼:</td><td><input type="password" name="password"/></td></tr>
        <tr><td colspan="2"><input type="submit" value="登入"/></td></tr>
    </table>
</form>

register.jsp(註冊)

<form action="manage/userOpt!register.action" method="post">
    <table>
        <tr><td>帳號:</td><td><input type="text" name="username"/></td></tr>
        <tr><td>密碼:</td><td><input type="password" name="password"/></td></tr>
        <tr><td colspan="2"><input type="submit" value="註冊"/></td></tr>
    </table>
</form>

動態方法調用說明

範例中使用 userOpt!login.action 與 userOpt!register.action,這是 Struts 2 的 動態方法調用 特性,允許單一 Action 類別處理多個業務邏輯,對應不同的方法名稱。

總結

Struts 2 透過模組化的包配置、靈活的攔截器機制與約定優於配置的設計,簡化了 Web 應用開發。掌握 struts.xml 的結構與 Action 的編寫,是上手此框架的關鍵。

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