Logic Tags
文法應用是 --
<someComparisonTag value="someUserNameValue" cookie="userName"> (cookie specifies the name of the cookie to compare with value)
<someComparisonTag value="en_US" header="Accept-Language"> (header specifies the name of the HTTP header to compare with value)
<someComparisonTag value="someUserNameValue" parameter="username"> (parameter specifies the name of the request parameter to compare with value)
<someComparisonTag name="testBean" property="propNameInTestBean" value="someValue"> (典型)
name指定了bean的名字而property指定了該bean的某個property以便於與value比較, 通常我們還可以加一個scope來限制bean
property is used in conjunction with name to specify a property in the bean specified by name. The property reference can be simple, nested, and/or indexed. For the type of syntax used for property, see the users guide on the Bean Tags.
scope specifies the bean scope which can be page, request, session, application, "any scope" (default)
1) 值比較 Value Comparison: equal, notEqual, greaterEqual, lessEqual, lessThan, greaterThan
比較邏輯是 -- 先試圖convert成long double,並比較; 如果parse失敗就會用String.equalTo()來比較
1) 值比較 Value Comparison: present, notPresent, empty, notEmpty
present看的是某變數/執行個體是否存在於某個限定範圍,empty看的是該執行個體是否為null, "", or collection.isEmpty()==true (only for collection)
2) 子字串匹配 Substring Matching: match, notMatch
match/notMatch 還有一個可選location來指定該substring必須出現在字串開始還是結尾 (location="start/end")
3) Presentation Location: forward, redirect
用法尚不清楚
4) Collection Utilities: iterate (極常用)
<logic:iterate id="searchResultList" name="<%=WebKeys.SEARCH_RESULT_LIST_TWO%>" scope="session">
<bean:write name="searchResultList" property="itemName"/></a>