Struts Logic 標籤庫提供條件判斷、迭代、轉向等流程控制標籤,常用於 JSP 頁面邏輯處理。本文詳細說明各標籤用法與範例。
判斷集合、Map、字串或物件是否為空/非空。
<logic:empty name="listForm" property="persons">
<div>集合 persons 為空!</div>
</logic:empty>
支援 Bean 屬性、Request 參數、Cookie、Header 與指定值比較。
<logic:greaterEqual name="student" property="scores" value="60">
及格
</logic:greaterEqual>
子字串匹配,支援 location 屬性指定匹配位置(start/end)。
<logic:match name="name" scope="request" value="hello" location="start">
以 "hello" 開頭
</logic:match>
檢查 Bean、屬性、參數、Header、Cookie、用戶角色是否存在。
<logic:present name="user" property="name">
user 及其 name 屬性均存在
</logic:present>
判斷 ActionMessages/ActionErrors 是否存在,常搭配 <html:messages> 顯示錯誤。
<logic:messagesPresent property="error">
<html:messages property="error" id="err">
<bean:write name="err"/>
</html:messages>
</logic:messagesPresent>
支援 Array、Collection、Enumeration、Iterator、Map 等類型。可指定 id、indexId、offset、length。巢狀迭代範例:
<logic:iterate id="emp" name="empList">
<bean:write name="emp" property="name"/><br>
<logic:iterate id="address" name="emp" property="addressList">
<bean:write name="address"/><br>
</logic:iterate>
</logic:iterate>
struts-config.xml 全域 forward。<logic:forward name="redirect"/>
<logic:redirect href="https://www.example.com"/>
選擇建議:需保留請求資料用 forward;需跳轉外部網址或防止表單重複提交用 redirect。