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

Struts Logic 標簽庫完全指南:條件判斷、迭代與消息控制

     編輯:Java 程式設計入門

邏輯判斷標簽

典型示例


<!-- 判空 -->
<logic:empty name="userList">暫無用戶</logic:empty>

<!-- 等值 -->
<logic:equal name="user" property="state" value="1">啟用</logic:equal>

<!-- 動態值用 EL -->
<logic:equal name="charge" property="num" value="${business.num}">...</logic:equal>

<!-- 匹配 -->
<logic:match name="name" scope="request" value="amigo" location="start">以 amigo 開頭</logic:match>
<logic:match header="user-agent" value="Windows">Windows 系統</logic:match>

消息/錯誤控制標簽

標簽用途判斷條件為真時處理標簽體
logic:empty判空null、空串、Collection/Map.isEmpty()
logic:notEmpty非空與 empty 相反
logic:equal等於屬性值 == 指定值(字符串比較)
logic:notEqual不等於與 equal 相反
logic:greaterEqual大於等於數值比較
logic:greaterThan大於數值比較
logic:lessEqual小於等於數值比較
logic:lessThan小於數值比較
logic:match模式匹配包含/以...開頭/結尾(location 屬性)
logic:notMatch不匹配與 match 相反

<logic:messagesPresent property="error">
  <html:messages property="error" id="errMsg">
    <bean:write name="errMsg"/><br/>
  </html:messages>
</logic:messagesPresent>

對象存在性檢查

標簽用途
logic:messagesPresentActionMessages/ActionErrors 存在時顯示
logic:messagesNotPresent不存在時顯示

<logic:present name="user" property="name">用戶及姓名均存在</logic:present>
<logic:present header="user-agent">有 User-Agent</logic:present>

導航控制標簽

  • logic:forward name="globalForwardName":頁面轉發(查找全局 forward)
  • logic:redirect href="https://example.com":客戶端重定向,可攜帶參數

迭代標簽:logic:iterate

遍歷 Collection、Map、Array 等,支援索引、偏移、長度控制、巢狀迭代。

基礎遍歷


<logic:iterate id="user" name="userList">
  <bean:write name="user" property="name"/><br/>
</logic:iterate>

分頁切片:offset + length


<logic:iterate id="user" name="userList" indexId="idx" offset="1" length="2">
  <bean:write name="idx"/>. <bean:write name="user" property="name"/><br/>
</logic:iterate>

巢狀迭代:用戶下的地址列表


<logic:iterate id="user" name="userList">
  <bean:write name="user" property="name"/>
  <logic:iterate id="addr" name="user" property="addressList" length="3" offset="1">
    <bean:write name="addr"/><br/>
  </logic:iterate>
</logic:iterate>

最佳實踐提醒

  1. Struts 標簽不支援巢狀嵌套(如 logic:equal 內放 bean:write 作 value),動態值請用 EL 表達式
  2. logic:iterate 的 id 變量僅在標簽體內有效,頁面其他位置不可用
  3. 大量邏輯判斷建議移至 Action/Service 層,JSP 僅做簡單展示控制
  4. Struts 1.x 維護模式,新項目建議遷移至 Spring MVC / Thymeleaf 等現代棧
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
標簽用途
logic:presentRequest 范圍存在指定 Bean/屬性/Header
logic:notPresent不存在