### Struts1 Table标签中Logic的使用属性 在Struts框架中,`table`标签用于在JSP页面中展示数据,而`Logic`标签则提供了条件判断的能力,这对于动态显示内容非常有用。以下是对给定文件中提到的Logic标签属性进行详细解释: #### 1. `logic:empty` 该标签用于检查变量是否为空。如果指定的变量满足以下任一条件,则视为为空: - Java对象为null; - String字符串为空(""); - `java.util.Collection`的`isEmpty()`方法返回true; - `java.util.Map`的`isEmpty()`方法返回true。 **示例:** ```jsp <logic:empty name="userList"> <!-- 如果userList为空,则执行这里的代码 --> </logic:empty> ``` 等同于下面的Java代码: ```java if (userList == null || userList.isEmpty()) { // 如果userList为空,则执行这里的代码 } ``` #### 2. `logic:notEmpty` 此标签与`logic:empty`相反,用于检查变量是否非空。如果变量不为空,则执行该标签内的代码。 **示例:** ```jsp <logic:notEmpty name="userList"> <!-- 如果userList非空,则执行这里的代码 --> </logic:notEmpty> ``` #### 3. `logic:equal` 用于比较两个值是否相等。支持基本类型以及对象属性的比较。 **示例1:** 检查用户状态是否为1。 ```jsp <logic:equal name="user" property="state" value="1"> <!-- 如果user的状态为1,则执行这里的代码 --> </logic:equal> ``` **示例2:** 使用EL表达式进行比较。 ```jsp <logic:equal name="charge" property="num" value="${business.num}"> <!-- 如果charge的num等于business的num,则执行这里的代码 --> </logic:equal> ``` #### 4. `logic:notEqual` 与`logic:equal`相反,用于检查两个值是否不相等。 **示例:** ```jsp <logic:notEqual name="charge" property="num" value="${business.num}"> <!-- 如果charge的num不等于business的num,则执行这里的代码 --> </logic:notEqual> ``` #### 5. `logic:forward` 用于实现页面的跳转。它将控制权传递给指定的页面或资源。 **示例:** ```jsp <logic:forward page="/index.jsp" /> ``` #### 6. `logic:greaterEqual` 用于检查一个数值是否大于等于另一个数值。 **示例:** ```jsp <logic:greaterEqual name="student" property="score" value="90"> <!-- 如果学生的成绩大于等于90分,则执行这里的代码 --> </logic:greaterEqual> ``` #### 7. `logic:greaterThan` 用于检查一个数值是否大于另一个数值。 **示例:** ```jsp <logic:greaterThan name="student" property="score" value="90"> <!-- 如果学生的成绩大于90分,则执行这里的代码 --> </logic:greaterThan> ``` #### 8. `logic:lessEqual` 用于检查一个数值是否小于等于另一个数值。 **示例:** ```jsp <logic:lessEqual name="student" property="score" value="90"> <!-- 如果学生的成绩小于等于90分,则执行这里的代码 --> </logic:lessEqual> ``` #### 9. `logic:lessThan` 用于检查一个数值是否小于另一个数值。 **示例:** ```jsp <logic:lessThan name="student" property="score" value="90"> <!-- 如果学生的成绩小于90分,则执行这里的代码 --> </logic:lessThan> ``` #### 10. `logic:match` 用于检查字符串是否匹配特定模式。 **示例1:** 检查请求参数`name`是否为"amigo"。 ```jsp <logic:match name="name" scope="request" value="amigo"> <bean:write name="name" /> 是amigo </logic:match> ``` **示例2:** 检查请求参数`name`是否以"amigo"开头。 ```jsp <logic:match name="name" scope="request" value="amigo" location="start"> <bean:write name="name" /> 以amigo为开头 </logic:match> ``` **示例3:** 检查请求头`user-agent`是否包含"Windows"。 ```jsp <logic:match name="user-agent" scope="header" value="Windows"> 使用的是Windows系统 </logic:match> ``` #### 11. `logic:notMatch` 与`logic:match`相反,用于检查字符串是否不匹配特定模式。 **示例:** ```jsp <logic:notMatch name="name" scope="request" value="amigo"> <bean:write name="name" /> 不是amigo </logic:notMatch> ``` #### 12. `logic:messagePresent` 用于检查ActionMessages或ActionErrors是否存在。 **示例:** ```jsp <logic:messagePresent property="error"> <html:messages property="error" id="errMsg"> <bean:write name="errMsg" /> </html:messages> </logic:messagePresent> ``` #### 13. `logic:messagesNotPresent` 与`logic:messagePresent`相反,用于检查ActionMessages或ActionErrors是否不存在。 **示例:** ```jsp <logic:messagesNotPresent property="error"> <!-- 如果没有错误消息,则执行这里的代码 --> </logic:messagesNotPresent> ``` #### 14. `logic:present` 用于检查变量是否存在(在请求、会话或其他作用域中)。 **示例1:** 检查请求参数`user`的`name`属性是否存在。 ```jsp <logic:present name="user" property="name"> 用户名存在 </logic:present> ``` **示例2:** 检查名为`user`的JavaBean是否存在。 ```jsp <logic:present name="user"> User JavaBean存在 </logic:present> ``` **示例3:** 检查HTTP请求头`user-agent`是否存在。 ```jsp <logic:present header="user-agent"> 我们获得了user-agent头 </logic:present> ``` #### 15. `logic:notPresent` 与`logic:present`相反,用于检查变量是否不存在。 **示例:** ```jsp <logic:notPresent name="user" property="name"> 用户名不存在 </logic:notPresent> ``` #### 16. `logic:redirect` 用于实现页面的重定向。 **示例:** ```jsp <logic:redirect page="http://www.chinaitlab.com" /> ``` #### 17. `logic:iterator` 用于遍历集合中的元素,并且可以配合其他标签一起使用。 **示例:** ```jsp <logic:iterate id="item" name="items"> <bean:write name="item" property="name" />: <bean:write name="item" property="description" /> </logic:iterate> ``` 以上是Struts1框架中`table`标签中逻辑标签的详细介绍。这些标签在处理复杂的业务逻辑时非常有用,可以帮助开发者更方便地编写动态页面。
1. logic:empty
该标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。该标签用于以下情况:
1)当Java对象为null时;
2)当String对象为""时;
3)当java.util.Collection对象中的isEmpty()返回true时;
4)当java.util.Map对象中的isEmpty()返回true时。
eg.
< logic:empty name="userList">
...
< /logic:empty>
该句等同于:
if (userList.isEmpty()) {
...
}
2. logic:notEmpty
该标签的应用正好和logic:empty标签相反,略。
3. logic:equal
该标签为等于比较符。
eg1. 比较用户的状态属性是否1,若为1,输出"启用";
< logic:equal name="user" property="state" value="1">
启用
< /logic:equal>
eg2. 如果上例中的value值是动态获得的,例如需要通过bean:write输出,因struts不支持标签嵌套,可采用EL来解决该问题。
< logic:equal name="charge" property="num" value="${business.num}">
......
< /logic:equal>
4. logic:notEqual
该标签意义与logic:equal相反,使用方法类似,略。
5. logic:forward
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (18956428)STM32F103C8T6 小系统原理图 PCB
- (175828796)python全国疫情数据爬虫可视化分析系统(django)源码数据库演示.zip
- 记账本项目市场需求文档(MRD)
- (31687028)PID控制器matlab仿真.zip
- 基于SpringBoot的“在线答疑系统”的设计与实现(源码+数据库+文档+PPT).zip
- (11828838)进销存系统源码
- 记账本项目三大模块原型图
- fed54987-3a28-4a7a-9c89-52d3ac6bc048.vsidx
- (177367038)QT实现教务管理系统.zip
- (178041422)基于springboot网上书城系统.zip