條件標籤
- <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>
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"/>
<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>
也可這麼寫: <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>