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

Struts 2 框架安裝與配置快速入門

     編輯:Java 相關知識

下載與依賴

  1. 官網 struts.apache.org 下載 Full Distribution(含所有 JAR)。
  2. 解壓後,將 lib/ 下核心 JAR 複製至專案 WEB-INF/lib/:
commons-logging-1.1.3.jar
freemarker-2.3.19.jar
ognl-3.0.6.jar
struts2-core-2.5.x.jar
xwork-core-2.3.x.jar
# 其餘 jar 視需求引入(json, spring, hibernate plugin 等)

注意:版本號以實際下載包為準,避免版本衝突。

web.xml 配置核心 Filter

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

Struts 2.5+ 採用 StrutsPrepareAndExecuteFilter,舊版為 FilterDispatcher。

struts.xml 基礎配置

放在 src/(類別路徑根目錄):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "https://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
  <constant name="struts.devMode" value="true" /> <!-- 開發模式,熱載入配置 -->
  <constant name="struts.ui.theme" value="simple" /> <!-- 簡潔主題 -->
  
  <package name="default" namespace="/" extends="struts-default">
    <action name="login" class="com.example.action.LoginAction">
      <result name="input">/login.jsp</result>
      <result name="success">/welcome.jsp</result>
      <result name="error">/error.jsp</result>
    </action>
  </package>
</struts>

Action 類別範例

package com.example.action;

public class LoginAction {
    private String username, password, message;
    // getter/setter 省略
    
    public String execute() {
        if ("admin".equals(username) && "1234".equals(password)) {
            return "success";
        }
        message = "帳號或密碼錯誤";
        return "input"; // 回登入頁顯示錯誤
    }
}

JSP 表單(使用 Struts 標籤庫)

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
  <s:form action="login">
    <s:textfield name="username" label="帳號" />
    <s:password name="password" label="密碼" />
    <s:submit value="登入" />
    <s:if test="message != null">
      <div style="color:red"><s:property value="message" /></div>
    </s:if>
  </s:form>
</body>
</html>

常見問題排查

  • 404 / No result defined:檢查 struts.xml 的 namespace、action name、result 路徑是否與請求 URL 對應。
  • OGNL 表達式報錯:確認屬性有 getter/setter、型別匹配、struts.el.enable 未關閉。
  • 多模組專案:在 struts.xml 使用 <include file="struts-module-xxx.xml"/> 模組化管理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved