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

Struts 2 學習筆記(十):通用標籤與主題設定優先級——Action、Bean、Date、Include、URL、I18n、Property、Push、Set

     編輯:Java 相關知識

系統整理 Struts 2 核心通用標籤(非 UI 標籤)與主題設定機制,涵蓋資料標籤、控制標籤、主題優先級規則,為後續 UI 標籤深入奠基。

核心通用標籤詳解

<s:action>:頁面直接調用 Action

  • name:指定 Action 名稱
  • executeResult="true|false"(預設 false):是否包含目標 Action 轉向視圖內容
  • ignoreContextParams="true|false"(預設 false):是否傳遞當前頁請求參數

<s:bean>:實例化 JavaBean

  • name(必填):Bean 完整類名
  • 標籤內用 <s:param name="" value=""/> 設定屬性
  • 標籤內 Bean 實例位於 ValueStack 頂端,結束自動清除
  • 指定 id 可將實例放入 Stack Context
  • 複雜屬性如何用 <s:param> 設定尚待研究

<s:date>:格式化輸出日期/計算時差

  • name(必填):Date 實例(OGNL 運算式)
  • format:格式模式
  • nice="true|false"(預設 false):true 時輸出相對時差(如 "92 days, 9 hours ago"),忽略 format
  • 未指定 format 時尋找資源鍵 struts.date.format,否則用 DateFormat.MEDIUM
<% pageContext.setAttribute("now", new Date(107,11,23,13,23,24)); %>
<s:date name="#attr.now" format="yyyy年MM月dd日" nice="false"/>  <!-- 2007年12月23日 -->
<s:date name="#attr.now" format="yyyy年MM月dd日" nice="true"/>   <!-- 相對時差 -->

<s:include>:包含資源(JSP/Servlet 等)

  • value:資源路徑
  • 標籤內 <s:param> 傳遞參數
<s:include value="include-file.jsp">
  <s:param name="name" value="Unmi"/>
</s:include>

推測底層同為 RequestDispatcher.include(request,response)。

<s:param>:服務外層標籤傳遞參數

服務於 bean、include、url 等標籤。

<s:url>:生成 URL 地址

  • value 或 action 指定 URL,action 會自動補 .action
  • method 指定 Action 方法
  • includeParams:是否包含當前頁參數
  • encode:無論 true/false 似乎都會編碼參數
假設當前 URL: https://localhost/TestStruts2/index.jsp?name=unmi
1) <s:url value="Login.action"><s:param name="pass">password</s:param></s:url>
   → Login.action?name=unmi&pass=password
2) <s:url value="/Login.action" includeParams="none"><s:param name="pass">中國</s:param></s:url>
   → /TestStruts2/Login.action?pass=%E4%B8%AD%E5%9B%BD
3) <s:url action="Login" includeContext="false" method="register"><s:param name="pass">password</s:param></s:url>
   → /Login!register.action?name=unmi&pass=password

國際化標籤

  • <s:i18n name="">:指定資源束 baseName
  • <s:text name="">:輸出國際化訊息

UI 標籤核心:主題與模板

Struts 2 所有 UI 標籤基於主題與模板,模板是 UI 標籤的外在表現形式。如 <s:select> 根據對應 select 模板生成下拉框。一系列模板形成一個主題。

對比 Struts 1

Struts 1 UI 標籤直接掛鉤 HTML 元素,樣式靠 style/styleClass 指定。Struts 2 透過主題統一風格,而非強制指定單一模板。

主題設定優先級(由高到低)

  1. UI 標籤 theme 屬性
  2. 外層 <s:form> 的 theme 屬性
  3. Page/Request/Session/Application 域中的 "theme" 屬性值
  4. struts.properties 或 struts.xml 中 struts.ui.theme 常量(預設 xhtml)

原則:表單主題設 form 標籤;用戶會話主題設 Session;整個應用主題設常量。

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