该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。
1.<logic:iterate/>
用于显示列表为collection的值(List ,ArrayList,HashMap等)。
<%
List stuList=new ArrayList();
Student stu=new Student();
stu.setName("Alice");
...
stuList.add(stu);
request.setAttribute("stuList",stuList);
%>
<logic:iterate id="stu" name="stuList">
<tr>
<td>${stu.id }</td>
<td>${stu.name }</td>
<bean:write name=" stu.sex " />
<td>${stu.age }</td>
<td>${stu.desc }</td>
</tr>
</logic:iterate>
2 <logic:empty/>
用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。该标签用于以下情况:
当Java对象为null时
当String对象为""时
当java.util.Collection对象中的isEmpty()返回true时
当java.util.Map对象中的isEmpty()返回true时
下面的代码示例了logic:empty标签判断集合persons是否为空:
<logic:empty name="stu" property = "books">
<div>集合books为空!</div>
</logic:empty>
3 <logic:equal/>
这类标签完成比较运算,包括:
logic:equal(=)
logic:notEqual(!=)
logic:greaterEqual(>=)
logic:lessEqual(<=)
logic:graterThan(>)
logic:lessThan(<)
Example:
<logic:equal name="stu" property="name" value="Alice">
I am Alice.
</logic:equal>
<bean:define id="count" value="168"/>
<logic:equal name="count" value="168">
Good lucky number.
</logic:equal>
4 <logic: forward/>
用于实现页面导向,查找配置文件的全局forward。eg. < logic:forward name="index"/>
5 <logic: match/>
此标签比较对象是否相等;
eg1. 检查在request范围内的name属性是否包含"amigo"串:
< logic:match name="name" scope="request" value="amigo">
< bean:write name="name"/>中有一个“amigo”串。
< /logic:match>
eg2. 检查在request范围内的name属性是否以“amigo”作为起始字符串:
< logic:match name="name" scope="request" value="amigo" location="start">
< bean:write name="name"/>以“amigo”作为起始字符串。
< /logic:match>
6 <logic: present/>
此标签用于判断request对象传递参数是否存在。
eg1. user对象和它的name属性在request中都存在时,输出相应字符串:
< logic:present name="user" property="name">
user对象和该对象的name属性都存在
< /logic:present>
eg2. 若有一个名字为“user”的JavaBean,输出对应字符串:
< logic:present name="user" >
有一个名字为“user”的JavaBean。
< /logic:present>