一 综述
Struts Logic 的标记大致可以分为以下几种:
(1) 比较标记
(2) 循环遍历标记
(3)匹配标记
(4)存在标记
(5)判空标记
(6)转发与重定向标记
实例代码如下:
<%
pageContext.setAttribute("test1" ,new Integer(10000)) ;
%>
<logic:equal value="10000" name="test1">
变量test1等于10000
</logic:equal>
判断成立时才打印 变量test1等于10000 。
<logic:notEqual> <logic:lessThan> 等标签均相似 。
以下是几个通用的属性
(1)header属性
它的值表示HTTP请求的header信息
<logic:equal header ="host" value="localhost:8080">
主机地址为localhost:8080
</logic:equal>
(2)parameter属性
<html:link page="/login.jsp?testInt=12345">
添加参数
</html:link>
<logic:greaterThan parameter ="testInt" value="10000">
参数testInt的值大于10000
</logic:greaterThan>
(3)name属性
若指定的变量并不是一个字符串,而是一个javaBean ,则还需要一个property属性和其配合使用,该property指定了javaBean的某个属性。然后将该属性的值与value所指定的值进行比较。
2 <logic:iterate>属性
(1) 对数组进行循环遍历
用于在页面中创建一个循环,以此用来遍历数组、Collection、Map这样的对象,该标签常用。
<%
String [] testArray1 = {"str0" ,"str1" ,"str2"} ;
pageContext.setAttribute("test1" , testArray1) ;
%>
<logic:iterate id="array1" name="test1">
<bean:write name="array1"/>
</logic:iterate>
(2)对HashMap 进行循环遍历
<%
Map countries = new HashMap() ;
countries.put("country1" ,"中国") ;
countries.put("country2" ,"美国") ;
countries.put("country3" ,"法国") ;
pageContext.setAttribute("countries" ,countries) ;
%>
<logic:iterate id="country" name="countries">
<bean:write name="country" property="key"/>
<bean:write name="country" property="value"/>
</logic:iterate>
(3)嵌套查询
<%
String [] colors = {"red","green","blue"} ;
String [] countries = {"中国" , "美国" ,"法国"} ;
String []persons = {"乔丹" ,"肯德基" ,"克林顿"} ;
ArrayList list2 = new ArrayList();
list2.add(colors) ;
list2.add(countries) ;
list2.add(persons) ;
pageContext.setAttribute("list2" , list2) ;
%>
<logic:iterate id="first" name="list2" indexId="numberfirst">
<bean:write name="numberfirst"/>
<logic:iterate id="second" name="first">
<bean:write name="second"/>
</logic:iterate>
</logic:iterate>
3 Match 标记
<logic:match>判断变量中是否包含指定的常量字符串。
<logic:notMatch>判断变量中是否不包含指定的常量字符串。
该标签有些类似java.lang.String类中的indexOf()方法。
<%
pageContext.setAttribute("test" ,"Hello,World") ;
%>
<logic:match name="test" value="Hello">
<bean:write name="test"/>
</logic:match>
4 Presence标记
主要包含以下4个:
(1) <logic:present>
(2) <logic:notpresent>
(3) <logic:messagePresent>
(4)<logic:messageNotPresent>
前2个主要是判断所指定的对象是否存在。以下为实例代码
<%
pageContext.setAttribute("ExistingString" , "testString") ;
%>
<logic:present name="ExistingString">
ExistingString的值为:<bean:write name="ExistingString"/>
</logic:present>
常用属性如下:
(1) header 属性 :判断是否存在header属性所指定的header信息。
(2)parameter属性 : 判断是否存在parameter属性所指定的请求信息。
(3)cookie : 判断cookie属性所指定的请求参数。
(4)name属性:判断name属性所指定的变量是否存在。
(5)property :和name属性同时使用,当name属性所指定的变量是一个javaBean时,判断proeprty属性所指定的对象属性是否存在。
5 Empty标记
<logic:empty>:判断所指定的字符串是否为空。
<logic:notEmpty> 判断所指定的字符串是否不为空。
6 转发和重定向
(1)转发标记
<logic:forward>用于全局转发,和struts-config.xml文件中的<global-forward>内的子项相对应。
(2) 重定向标记
<logic:redirect>