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

Struts 2 應用開發流程完整指南:環境搭建、攔截器配置、Action 處理、結果視圖映射

     編輯:Java 綜合教學

Struts 2 開發環境準備

  1. 官網下載:struts-2.3.30-all.zip、struts-2.3.30-docs.zip
  2. 解壓至同一目錄
  3. Eclipse 創建 Dynamic Web Project
  4. 復制 struts2-blank.war 解壓後 WEB-INF/lib 所有 JAR 到專案 WebContent/WEB-INF/lib
  5. 將 JAR 加入 Build Path

核心配置:web.xml 註冊核心攔截器

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="https://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://java.sun.com/xml/ns/j2ee https://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
    <!-- 核心攔截器 -->
    <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>

若專案無 web.xml,可從 Tomcat conf/web.xml 或 Struts blank war 複製模板。

頁面層:JSP 表單提交

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html><body>
    <s:form action="test_1">
        <s:textfield name="username" key="username"/>
        <s:submit key="login" value="login"/>
    </s:form>
</body></html>

控制層:Action 類處理請求

package testAction;

import com.opensymphony.xwork2.ActionSupport;

public class Test_1Action extends ActionSupport {
    private String username;  // 自動接收表單同名參數
    
    public void setUsername(String username) { this.username = username; }
    public String getUsername() { return this.username; }
    
    @Override
    public String execute() throws Exception {
        if (getUsername() != null) 
            return SUCCESS;  // 邏輯視圖名
        else 
            return ERROR;
    }
}

視圖層:物理視圖資源

<!-- error.jsp -->
<html><body>錯誤頁面!username 為空!</body></html>

<!-- welcome.jsp -->
<%@ taglib prefix="s" uri="/struts-tags"%>
<html><body>登陸成功!</body></html>

Struts 核心配置:struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 
    "https://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
    <constant name="struts.devMode" value="true"/>
    
    <package name="test" extends="struts-default">
        <action name="test_1" class="testAction.Test_1Action">
            <result name="error">error.jsp</result>
            <result name="success">welcome.jsp</result>
        </action>
    </package>
</struts>

關鍵組件關係圖解

組件角色配置位置
Filter核心攔截器,啟動 Strutsweb.xml
Action處理業務,返回結果字符串Java 類 + struts.xml
Result邏輯視圖 → 物理頁面映射struts.xml <result>
Interceptor橫切關注點(參數注入、驗證、文件上傳)struts-default.xml / 自定義
ValueStack/OGNL數據存儲與表達式語言運行時上下文

開發流程總結

  1. 導入 JAR → 配置 web.xml Filter
  2. 編寫 JSP 表單(Struts 標籤庫)
  3. 編寫 Action 類(繼承 ActionSupport,提供屬性 + execute())
  4. 準備結果頁面(JSP)
  5. 配置 struts.xml:Action 映射 + Result 映射
  6. 啟動 Tomcat 訪問驗證

進階提示

  • 開發模式 struts.devMode=true 便於調試,生產環境關閉
  • 使用 struts.xml 模塊化拆分:<include file="struts-module.xml"/>
  • 採用約定優於配置插件減少 XML
  • 文件上傳、類型轉換、驗證框架、國際化為常用進階特性

Struts 2 以 Filter 為核心,Action 為 POJO,Result 解耦視圖,構建了經典的 MVC 開發模式。雖然 Spring MVC 更主流,但理解 Struts 2 有助於掌握 Java Web 框架演進脈絡。

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