首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Struts 1.x 中 JSP form action 與 struts-config.xml path 映射關係詳解

     編輯:程式設計疑難解答

Struts 1.x 專案中,JSP `` 與 `struts-config.xml` 中 `` 的對應關係是新手最易混淆的地方。本文從表單提交、超連結請求、虛擬路徑解析三個維度,系統梳理其映射規則與實戰技巧。

核心映射規則

請求方式JSP 寫法struts-config.xml 對應匹配規則
表單提交<html:form action="/clsCompCaseDealAction"><action path="/clsCompCaseDealAction" ...>action 值必須與 path 完全一致(含前導 /)
超連結/重導向<a href="/module/xxx.do"><action path="/xxx" ...>以「當前請求路徑的虛擬目錄」為基準做相對解析

虛擬路徑解析機制

Struts 1 使用「模組前綴」+「action path」組成完整 URL。假設:

  • 專案部署路徑:/myapp
  • 模組前綴:/moduleA(在 `` 或 `web.xml` 設定)
  • Action 定義:path="/user/login"

則實際可訪問 URL 為:https://host:port/myapp/moduleA/user/login.do

相對路徑陷阱與最佳實踐



登入           
登入       


登入   
登入 

資源檔(CSS/JS/圖片)路徑處理

因虛擬目錄存在,靜態資源若用相對路徑極易 404。統一使用:


<base href="<%=request.getScheme()%>://<%=request.getServerName()%>:<%=request.getServerPort()%><%=request.getContextPath()%>/">


<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<link rel="stylesheet" href="${ctx}/css/main.css"/>
<script src="${ctx}/js/app.js"></script>

常見錯誤排查表

現象可能原因檢查重點
表單提交 404form action 與 action path 不一致大小寫、前導 /、模組前綴
超連結 404相對路徑解析錯誤改用絕對路徑或 `${ctx}`
CSS/JS 404虛擬目錄導致相對路徑偏移加 `` 或 `${ctx}` 前綴
Action 不執行struts-config.xml 未載入或模組未註冊web.xml `config`、模組定義

遷移建議

Struts 1 已停止維護(EOL 2013),新專案建議直接使用 Spring MVC / Struts 2 / Spring Boot。若必須維護舊專案,請嚴守「form action = action path」與「靜態資源用絕對路徑」兩大鐵律,可避免 90% 的路徑問題。

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