ITEEDU

Struts Gossip: 其它 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="http://www.caterpillar.onlyfun.net/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>