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

Struts Logic 標籤庫完整實戰手冊:empty、compare、iterate、redirect 等 17 標籤詳解

     編輯:J2EE

Logic 標籤庫:JSP 中的流程控制利器

Struts logic 標籤將條件判斷、迭代、轉向等邏輯從 Scriptlet 中剝離,提升 JSP 可讀性與維護性。

17 大標籤分類詳解

空值判斷

標籤判斷條件(為真執行體)範例
logic:empty null / 空字串 / Collection.isEmpty() / Map.isEmpty() <logic:empty name="userList">...</logic:empty>
logic:notEmpty 相反條件 同上

比較運算

標籤語意關鍵屬性
logic:equal 等於 name, property, value
logic:notEqual 不等於 同上
logic:greaterEqual 大於等於 同上
logic:greaterThan 大於 同上
logic:lessEqual 小於等於 同上
logic:lessThan 小於 同上

動態值技巧:value 不支援標籤巢狀,用 EL 表達式 value="${bean.prop}" 解決。

字串匹配

標籤語意關鍵屬性
logic:match 包含/前綴/後綴匹配 name, value, location(start/end)
logic:notMatch 不匹配 同上

支援 header 屬性直接匹配 HTTP Header(如 User-Agent)。

訊息/錯誤存在性檢查

  • logic:messagesPresent / logic:messagesNotPresent:檢查 ActionMessages/ActionErrors 是否存在,配合 html:messages 輸出

參數存在性檢查

  • logic:present / logic:notPresent:檢查 request 參數/屬性/Header 是否存在

導向與轉向

  • logic:forward:name 對應 struts-config.xml 全域 forward
  • logic:redirect:客戶端重導向,支援參數傳遞 <logic:redirect href="https://xxx"/>

迭代輸出:logic:iterate(核心標籤)

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

進階屬性:

  • indexId:索引變數名
  • offset:起始位移
  • length:輸出筆數

巢狀迭代範例:

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

避坑提醒

  • logic:iterate 的 name 屬性指向請求範圍內的 Collection/Map,非字串
  • EL 表達式解決動態比較值問題
  • 巢狀迭代時 id 變數作用域隔離,內層可覆蓋外層同名變數
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved