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

Struts 1.x 系列教程(7):Logic 標籤庫核心標籤詳解

     編輯:Java 相關知識

前言

Logic 標籤庫提供流程控制標籤,分為三大類:**迴圈(iterate)、條件判斷、導向控制**。本文詳細說明各標籤屬性與使用範例。

一、迴圈標籤 <logic:iterate>

枚舉陣列、集合、Iterator、Map 鍵值集等,功能類似 JSTL <c:forEach>。

常用屬性

屬性說明
id迴圈變數名(page 範圍)
name集合/陣列物件名,或包含 getter 的 JavaBean
property若 name 為 JavaBean,指定其集合屬性名
indexId索引變數名(從 0 開始)
offset起始索引偏移量
length枚舉元素個數
scope搜尋 name 的範圍(page/request/session/application)

完整範例 iterate.jsp

<%@ taglib uri="https://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="https://struts.apache.org/tags-bean" prefix="bean" %>
<%
    String[] array = {"bill", "王明", "趙陽"};
    pageContext.setAttribute("array", array);
    List<String> list = new LinkedList<>();
    list.add("計算機"); list.add("英語");
    pageContext.setAttribute("list", list);
    pageContext.setAttribute("iterator", list.iterator());
    Map<String,String> map = new HashMap<>();
    map.put("book", "書"); map.put("apple", "蘋果");
    pageContext.setAttribute("keySet", map.keySet());
    pageContext.setAttribute("entrySet", map.entrySet());
%>

<!-- 陣列:offset=1, length=1 只取第 2 元素 -->
<logic:iterate id="s" name="array" indexId="i" offset="1" length="1">
    array[<bean:write name="i"/>] = <bean:write name="s"/>
</logic:iterate>

<!-- JavaBean 索引屬性 -->
<jsp:useBean id="form" class="actionform.HtmlTagsForm"/>
<jsp:setProperty name="form" property="hobbies" value="<%=new String[]{"計算機","旅遊","攝影"}%>"/>
<logic:iterate id="s" name="form" property="hobbies">
    <bean:write name="s"/>
</logic:iterate>

<!-- List -->
<logic:iterate id="s" name="list" indexId="i">
    list[<bean:write name="i"/>] = <bean:write name="s"/>
</logic:iterate>

<!-- Iterator -->
<logic:iterate id="s" name="iterator" indexId="i" offset="1">
    list[<bean:write name="i"/>] = <bean:write name="s"/>
</logic:iterate>

<!-- Map EntrySet -->
<logic:iterate id="entry" name="entrySet">
    <bean:write name="entry" property="key"/> = <bean:write name="entry" property="value"/>
</logic:iterate>

二、條件判斷標籤

三大類別

  1. 存在性/空值:present、notPresent、empty、notEmpty、messagesPresent、messagesNotPresent
  2. 比較:equal、notEqual、greaterThan、greaterEqual、lessThan、lessEqual
  3. 字串匹配:match、notMatch(正則表達式)

共同屬性

  • name:目標物件名
  • property:物件屬性名(若 name 為 JavaBean)
  • value:比較基準值(比較類標籤必填)

範例

<logic:empty name="var">var 為空</logic:empty>
<logic:lessThan name="employee" property="age" value="18">不符合工作年齡</logic:lessThan>

三、導向控制標籤

  • <logic:redirect href="https://www.example.com"/>:客戶端重導向(HTTP 302)。
  • <logic:forward name="globalForwardName"/> 或 page="...":伺服器端轉向,功能同 <jsp:forward>。

官方文件參考

完整標籤參考:Struts Logic Taglib

總結

Logic 標籤庫將 Java 流程控制邏輯標籤化,配合 Bean 標籤庫輸出,實現「View 層無 Java 程式碼」的早期 MVC 理想。現代開發多改用 JSTL <c:forEach>、<c:if>、<c:redirect> 等標準標籤,但理解 Logic 標籤有助於維護舊版 Struts 專案。

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