語法應用是 --
<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)
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
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>
<bean:write name="searchResultList" property="itemUnitOfMeasure" />
<bean:write name="searchResultList" property="inventoryDetailSize" format="#0.00"/>
</logic:iterate>
如果property給定,name代表了一個bean的實例,而這個bean的getThatProperty()將返回此tag需要的collection實例,
如果沒有給定property, name本身就指定了將被iterate的collection的實例,
id給出了每一次循環的collection的當前object的名字,用于在
offset和length指定了從collection的哪個位置開始,到哪里結束,其他請參見Struts Documentation,這里不詳述