您的位置:首页 > 编程语言 > Java开发

struts logic标签学习笔记

2006-07-14 15:12 417 查看
进行字符串匹配的logic标签
所有的字符串匹配标签都判断一个变量中是否包含指定的常量字符串.
<logic:match>变量中包含指定的常量字符串.
<logic:notMatch>变量中不包含指定的常量字符串.
字符串配配标签的value属性指定常量值,可以通过cookie,header,parameter,name和property属性来设置.
字符串匹配的标签的location属性指定子字符串的位置,可选值包括:
start:子字符串位于母字符串的起始位置.
end:子字符串位于母字符串的结尾.




判断指定内容是否存在的Logic标签
<logic:empty>:判断指定的变量是否为null,或者为空字符串" ".
<logic:notEmpty>:判断指定的变量是否不为null,并且不是空字符创" ".
<logic:present>:判断指定的安全角色,用户,Cookie,HTTP请求header或者JavaBean是否存在.
<logic:notPresent>:判断指定的安全角色,用户,Cookie,HTTP请求header或者JavaBean是否不存在.
<logic:messagePresent>:判断指定的消息是否存在.
<logic:messageNotPresent>:判断指定的消息是否不存在.

<logic:empty>和<logic:notEmpty>标签
可以设置<logic:empty>和<logic:notEmpty>标签的name属性,或者同时设置name属性和property属性,来指定变量.
例如:
<%
request.setAttribute("emptyString"," ");
%>
<logic:empty name="emptyString">
 The variable named emptyString is empty!<p>
</logic:empty>


<logic:present>和<logic:notPresent>标签
<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.



进行循环遍历的Logic标签
<logic:iterate>是Logic标签库中最复杂的标签,也是用途最广的一个标签,它能够在一个循环中遍历数组,Collectin,Enumeration,Iterator或map.
<logic:iterate>的name属性指定需要进行遍历的集合对象,它每次从集合中检索出一个元素,然后把它存放在page范围内,并以id属性指定的字符串来命名这个元素.
length属性指定需要遍历的元素的数目,如果没有设置length属性,就遍历集合中所有的元素.
offset属性指定开始遍历的起始位置,默认值为"0",表示从集合的第一个元素开始遍历.
indexId属性定义一个代表当前被遍历元素需要的变量,这个变量被存放在page范围内,可以被标签主体的<bean:write>标签访问到.
例如:
<logic:iterate id="element' indexId="idnex" name="Animals" offset="1" length="2">
 <bean:write name="index"/>
 <bean:write name="element"/>
</logic:iterate>

遍历Map
<logic:iterate>标签可以遍历HashMap中的元素,例如:
<%
HashMap months=new HashMap();
months.put("Jan.","January");
months.put("Feb.","February");
months.put("Mar.","March");
request.setAttribute("months",months);
%>
<logic:iterate id="element" indexId="ind" name="months">
 <bean:write name="ind"/>
 <bean:write name="element" property="key"/>:
 <bean:write name="element" property="value"/>      //如果value是Object,则property="value.属性"
</logic:iterate>


如果HashMap中的每个元素的value是集合对象,则可以采用嵌套的<logic:iterate>标签遍历集合中的所有对象.
<logic:iterate id="element" indexId="ind" name="catalog">
 <bean:write name="ind"/>
 <bean:wirte name="element" property="key"/>
 <logic:iterate id="elementValue" name="element" property="value" lenth="3" offset="1">
 <bean:wirte name="elementValue"/>
 </logic:iterate>
</logic:iterate>
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息