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

Struts2 如何正確獲取 Action 中的錯誤信息

     編輯:程式設計疑難解答

問題背景

開發者在使用 Struts2 時,嘗試通過標簽從 ActionContext 或 ValueStack 中取出 errors 集合並顯示,但常規方法未能如願。

解決方案

Struts2 將驗證錯誤存儲在 ActionContext.getActionContext().get("errors") 中,或通過 ActionSupport 的 getActionErrors() 方法獲取。在 JSP 頁面可使用以下標簽:

<!-- 方式一:使用 s:actionerror 標簽(推薦) -->
<s:actionerror />

<!-- 方式二:遍歷 errors 集合 -->
<s:iterator value="actionErrors">
  <div class="error"><s:property /></div>
</s:iterator>

<!-- 方式三:從 ActionContext 直接取值 -->
<s:property value="#request.errors" />

關鍵點

  • 確保 Action 繼承 ActionSupport 或實現 ValidationAware 接口。
  • 驗證失敗時,Struts2 會自動將錯誤信息放入 actionErrors 集合並返回 INPUT 結果。
  • <s:actionerror/> 會自動渲染為 <ul><li>...</li></ul> 結構,可通過 CSS 定制樣式。

若上述方法仍無效,請檢查攔截器棧是否包含 validation 和 workflow 攔截器,以及 JSP 頁面是否正確引入 Struts 標簽庫。

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