一、
进行比较运算的
Logic
标签:
比较运算标签比较结果为
true
的条件:
比较运算标签
|
比较结果为
true
的条件
|
<logic:equal>
|
变量等于指定常量
|
<logic:notEqual>
|
变量不等于指定常量
|
<logic:lessThan>
|
变量小于指定常量
|
<logic:lessEqual>
|
变量小于或等于指定常量
|
<logic:greaterThan>
|
变量大于指定常量
|
<logic:greaterEqual>
|
变量大于或等于指定常量
|
比较运算标签的value属性指定常量值,可以通过以下方式来设置变量:
? 设置cookie属性,此时变量为cookie属性指定的Cookie的值;
? 设置header属性,此时变量为header属性指定的HTTP请求中的Header信息;
? 设置parameter属性,此时变量为parameter属性指定的请求参数的值;
? 设置name属性,此时name属性指定被比较的变量;
? 同时设置namet属性和property属性,此时name属性指定已经存在的JavaBean,property属性指定JavaBean的属性,被比较的变量为这个属性的值;
注:如果两个字符串都可以成功地转化为数字,就比较数字的大小,否则就进行字符串比较。
二、
进行字符串匹配的
Logic
标签:
所有的字符串匹配标签都判断一个变量中是否包含指定的常量字符串。字符串匹配标签判断结果为true的条件:
字符串匹配标签
|
判断结果为
true
的条件
|
<logic:match>
|
变量中包含指定的常量字符串
|
<logic:notMatch>
|
变量中不包含指定的常量字符串
|
字符串匹配标签的value属性指定常量值,可以通过cookie、header、parameter、name和property属性来设置变量,它们的用法和比较运算标签的相应属性相同。
字符串匹配标签的location属性指定子字符串的起始位置,可选值包括:
?
start:子字符串位于母字符串的起始位置;
?
end:子字符串位于母字符串的结尾;
如果没有指定location属性,子字符串可以位于母字符串的任何位置。
三、
判断指定内容是否存在的
Logic
标签:
1.
<logic:empty>
和
<logic:notEmpty>
标签:
判断指定的变量是否为null或空字符串。可以通过设置name属性,或者同时设置name属性和property属性,来指定变量。
2.
<logic:present>
和
<logic:notPresent>
标签:
判断指定的对象是否存在。具有以下属性,分别用于判断某种类型的对象是否存在:
?
cookie
属性:判断指定的cookie是否存在;
?
header
属性:判断指定的HTTP请求Header是否存在;
?
role
属性:判断当前通过权限验证的用户是否具有指定的安全角色,多个安全角色之间以逗号分隔,例:<logic:present role=”role1,role2,role3”>code..</logic:present>;
?
user
属性:判断当前通过权限验证的用户是否拥有指定的用户名;
?
parameter
属性:判断指定的请求参数是否存在;
?
name
属性:判断指定的JavaBean是否存在;
?
同时设置
name
属性和
property
属性:name属性指定JavaBean,property属性指定JavaBean的某个属性,判断这个属性是否存在并且是否为null。
1.
<logic:messagesPresent>
和
<logic:messagesNotPresent>
标签:
判断是否在request范围内存在指定的ActionMessages(或其子类ActionErrors)对象,以及在ActionMessages对象中是否存在特定的消息。具有以下属性:
属性
|
说明
|
name
|
指定在request范围内检索ActionMessages对象的属性key
|
message
|
如果为true,则从request范围内检索属性key为Globals.MESSAGE_KEY的ActionMessages对象,此时name属性指定的值无效;
如果为false,则根据name属性指定的属性key,从request范围内检索ActionMessages对象,如果此时没有设置name属性,则默认的属性key为Globals.ERROR_KEY;
该属性的默认值为false。
|
property
|
指定从ActionMessages对象中检索某条消息的消息key
|
四、
进行循环遍历的
Logic
标签:
<logic:iterate>是Logic标签库中最复杂的标签,也是应用最广泛的标签,它能够在一个循环中遍历数组、Collection、Enumeration、Iterator或Map中的所有元素。
1.
遍历集合:
<logic:iterator>标签的
name
属性指定需要进行遍历的集合对象,它每次从集合中检索出一个元素,然后把它存放在page范围内,并以id属性指定的字符串来命名这个元素。
length
属性指定需要遍历的元素的数目。
offset
属性指定开始遍历的起始位置,默认值为“0”,表示从集合的第一个元素开始遍历。
indexId
属性定义一个代表当前被遍历元素的序号的变量,这个变量被存放在page范围内。
2.
遍历
Map
:
例:<%
HashMap months = new HashMap();
months.put(“Jan.”,”January”);
months.put(“Feb.”,”February”);
months.put(“Mar.”,”March”);
request.setAttribute(“months”,months);
%>
<logic:iterate id=”element” indexed=”index” name=”months”>
<bean:write name=”index” />.
<bean:write name=”element” property=”key” />:
<bean:write name=”element” property=”value” /><br />
</logic:iterate>
3.
设置被遍历的变量:
可以通过以下方式来设置需要遍历的变量:
? 设置name属性,name属性指定需要遍历的集合、数组或Map;
? 设置name属性和property属性,name属性指定一个JavaBean,property属性指定JavaBean的一个属性,这个属性为需要遍历的集合或Map;
? 设置collection属性,collection属性指定一个运行时表达式,表达式的运算结果为需要遍历的集合或Map;
五、
进行请求转发或重定向的
Logic
标签;
1.
<logic:forward>
标签:
用于请求转发,它的name属性指定转发目标,与Struts配置文件中的<global-forwards>元素中的<forward>子元素匹配。
2.
<logic:redirect>
标签:
用于请求重定向。它的forward、href和page属性指定重定向目标,这几个重要属性的用法和<html:link>标签中的属性用法很相似。