其它 Logic 標籤參考


條件標籤

  • <logic:equal>、<logic:notEqual>
  • <logic:greatEqual>、<logic:greatThan>
  • <logic:lessEqual>、<logic:lessThan>
  • <logic:match>、<logic:notMatch>
  • <logic:present>、<logic:notPresent>

這幾個標籤在使用上是類似的,都是用於根據條件比較cookie、header、parameter或bean的值或字串,從字面意思應該都可以知道每一 個標籤的作用常用屬性如下:
  • cookie: 指定cookie名稱
  • header: 指定header名稱
  • parameter: 指定請求參數名稱
  • name: 指定bean名稱
  • scope: 指定bean範圍
  • value: 指定比較值

一些例子如下:
<logic:match
        cookie="valid_user" value="caterpillar">
    caterpillar! Welcome!
</logic:match>

<logic:match
        header="Accept-Language" value="zh">
    使用文中介面
</logic:match>

<logic:equal parameter="number" value="20">
    您猜中了
</logic:equal>

<logic:present scope="request" name="valid_user">
<bean:write name="valid_user" property="name"/>,
    您好,這是您的神秘禮物!
</logic:present>

<logic:notPresent scope="request" name="valid_user">
<html:link forward="welcome">
請先登入
</html:link>

<logic:forward>、<logic:redirect>

查詢struts-config.xml中的<global-forward>名稱,以forward或redirect的方式連接至指定的 網址或資源,可附加請求參數,一些範例如下:
<logic:forward name="welcome"/>

<bean:define id="username" value="caterpillar"/>

<logic:redirect
        href="https://openhome.cc/test.jsp"
        paramId="user" paramName="username"/>

<logic:iterate>

將指定的Collection物件依序取出至指定的變數,直接看例子會比較清楚,如果userForm的傳回值是Collection物件:
<!-- 複製Collection屬性至id -->
<bean:define id="props" name="userForm"
        property="someCollection"/>
<logic:iterate id="prop" collection="<%=props%>">
    <bean:write name="prop"/>
</logic:iterate>

也可這麼寫:
<logic:iterate id="prop" name="userForm"
        property="someCollection">
    <bean:write name="prop"/>
</logic:iterate>