Struts Logic
标签库包含了如下三类标签:
1. 循环标签: iterate 标签。用于枚举数组、集合类型对象中的元素。
1. 循环标签: iterate 标签。用于枚举数组、集合类型对象中的元素。
2.
条件处理标签:用于是否相等、比较大小等判断。这类标签有empty
、equal
、greaterEqual
、greaterThan
、lessEqual
、lessThan
、match
、messagesNotPresent
、messagesPresent
、notEmpty
、notEqual
、notMatch
、notPresent
、present
。
3.
流控制标签:用于转向其他的页面。redirect
和forward
属性这类标签。
一、循环标签
(iterate)
<logic:iterate> 标签用于对数组以及集合类型对象中的元素进行枚举。<logic:iterate> 标签在功能上和JSTL 中的<c:forEach> 标签非常相似。<logic:iterate> 标签的常用属性的意义和作用如下:
<logic:iterate> 标签用于对数组以及集合类型对象中的元素进行枚举。<logic:iterate> 标签在功能上和JSTL 中的<c:forEach> 标签非常相似。<logic:iterate> 标签的常用属性的意义和作用如下:
1. id
:一个表示集合中的每一个元素的变量,被保存在page
范围中。
2. name
:一个数组或集合对象名,或是一个包含有getter
方法的JavaBean
。
3. property
:如果name
是一个JavaBean
,那么property
就是这个JavaBean
的属性名。<logic:iterate>
标签通过这个属性名获得要枚举的数组或集合对象。
4. indexId
:循环过程中的索引(从0
开始),相当于Java
中在for
循环中使用变量i
来获得循环中每一项的索引。
5. offset
:偏移量。也就是从数组或集合的第几个元素开始枚举。
6. length
:从offset
开始,要枚举的元数的个数。
7. scope
:name
变量保存的范围。如果不指定,<logic:iterate>
标签将搜索所有的范围。也就是说,依次按着page
、request
、session
和application
进行搜索,如果在不同的范围有同样的变量名,以先搜索到的为准。
下面的例子演示了<logic:iterate>标签的使用。在<samples工程目录>目录中建立一个iterate.jsp文件,代码如下:
<%
@ page import
=
"
java.util.*
"
pageEncoding
=
"
GBK
"
%>
<% @ taglib uri = " http://struts.apache.org/tags-logic " prefix = " logic " %>
<% @ taglib uri = " http://struts.apache.org/tags-bean " prefix = " bean " %>
< html >
< head >
< title > 测试iterate标签 </ title >
</ head >
< body >
<%
String array [] = { " bill " , " 王明 " , " 赵阳 " };
pageContext.setAttribute( " array " , array );
List < String > list = new LinkedList < String > ();
list.add( " 计算机 " );
list.add( " 英语 " );
pageContext.setAttribute( " list " , list);
pageContext.setAttribute( " iterator " , list.iterator());
Map < String , String > map = new HashMap < String , String > ();
map.put( " book " , " 书 " );
map.put( " apple " , " 苹果 " );
pageContext.setAttribute( " keySet " , map.keySet());
pageContext.setAttribute( " entrySet " , map.entrySet());
%>
< logic:iterate id ="s" name ="array" indexId ="i" offset ="1" length ="1" >
array[ < bean:write name ="i" /> ] = < bean:write name ="s" />
</ logic:iterate >
< br >
< jsp:useBean id ="form" class ="actionform.HtmlTagsForm" />
< jsp:setProperty name ="form" property ="hobbies" value ="<%= new String[]{" 计算机","旅游","摄影"} % > "/>
< logic:iterate id ="s" name ="form" property ="hobbies" >
< bean:write name ="s" />
</ logic:iterate >
< br >
< logic:iterate id ="s" name ="list" indexId ="i" >
list[ < bean:write name ="i" /> ] = < bean:write name ="s" />
</ logic:iterate >
< br >
< logic:iterate id ="s" name ="iterator" indexId ="i" offset ="1" >
list[ < bean:write name ="i" /> ] = < bean:write name ="s" />
</ logic:iterate >
< br >
< logic:iterate id ="entry" name ="entrySet" >
< bean:write name ="entry" property ="key" /> = < bean:write name ="entry" property ="value" />
</ logic:iterate >
</ body >
</ html >
<% @ taglib uri = " http://struts.apache.org/tags-logic " prefix = " logic " %>
<% @ taglib uri = " http://struts.apache.org/tags-bean " prefix = " bean " %>
< html >
< head >
< title > 测试iterate标签 </ title >
</ head >
< body >
<%
String array [] = { " bill " , " 王明 " , " 赵阳 " };
pageContext.setAttribute( " array " , array );
List < String > list = new LinkedList < String > ();
list.add( " 计算机 " );
list.add( " 英语 " );
pageContext.setAttribute( " list " , list);
pageContext.setAttribute( " iterator " , list.iterator());
Map < String , String > map = new HashMap < String , String > ();
map.put( " book " , " 书 " );
map.put( " apple " , " 苹果 " );
pageContext.setAttribute( " keySet " , map.keySet());
pageContext.setAttribute( " entrySet " , map.entrySet());
%>
< logic:iterate id ="s" name ="array" indexId ="i" offset ="1" length ="1" >
array[ < bean:write name ="i" /> ] = < bean:write name ="s" />
</ logic:iterate >
< br >
< jsp:useBean id ="form" class ="actionform.HtmlTagsForm" />
< jsp:setProperty name ="form" property ="hobbies" value ="<%= new String[]{" 计算机","旅游","摄影"} % > "/>
< logic:iterate id ="s" name ="form" property ="hobbies" >
< bean:write name ="s" />
</ logic:iterate >
< br >
< logic:iterate id ="s" name ="list" indexId ="i" >
list[ < bean:write name ="i" /> ] = < bean:write name ="s" />
</ logic:iterate >
< br >
< logic:iterate id ="s" name ="iterator" indexId ="i" offset ="1" >
list[ < bean:write name ="i" /> ] = < bean:write name ="s" />
</ logic:iterate >
< br >
< logic:iterate id ="entry" name ="entrySet" >
< bean:write name ="entry" property ="key" /> = < bean:write name ="entry" property ="value" />
</ logic:iterate >
</ body >
</ html >
在IE
中输入如下的URL
测试iterate.jsp
:
二、条件处理标签
条件处理标签可分为如下三类:
1. Test : present 、notPresent 、empty 、notEmpty 、 messagesPresent 、messagesNotPresent
1. Test : present 、notPresent 、empty 、notEmpty 、 messagesPresent 、messagesNotPresent
2.
比较:
equal, lessThan, lessEqual, greaterThan
和greaterEqual
3.
字符串匹配: match
、
notMatch
所有的条件处理标签都有name 和property 属性。分别用来指定对象名和属性名。如下面的代码演示了<logic:empty> 和<logic:lessThan> 标签的使用:
所有的条件处理标签都有name 和property 属性。分别用来指定对象名和属性名。如下面的代码演示了<logic:empty> 和<logic:lessThan> 标签的使用:
<
logic:empty
name
="var"
>
var为空
</ logic:empty >
< logic:lessThan name ="employee" property ="age" value ="18" >
不符合工作年龄
</ logic:lessThan >
var为空
</ logic:empty >
< logic:lessThan name ="employee" property ="age" value ="18" >
不符合工作年龄
</ logic:lessThan >
三、流控制标签(
redirect
和
forward
)
<logic:redirect>用于重定向到其他的Web资源。用法如下:
<logic:redirect>用于重定向到其他的Web资源。用法如下:
<
logic:redirect
href
="http://www.sina.com.cn"
/>
<logic:forward>
标签用于把当前的请求转发给其他的静态资源、JSP
页或Servlet
。在功能和使用上和<jsp:forward>
类似。
关于Logic标签库的更详细的信息请读者参阅Struts的官方网站,URL如下:
http://struts.apache.org/1.2.9/userGuide/struts-logic.html
关于Logic标签库的更详细的信息请读者参阅Struts的官方网站,URL如下:
http://struts.apache.org/1.2.9/userGuide/struts-logic.html
本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/215233,如需转载请自行联系原作者