struts标签--logic总结
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
该标签用于实现页面导向,查找配置文件的全局forward。
eg. <logic:forward name="index"/>
6. logic:greaterEqual
为大于等于比较符。
eg. 当某学生的成绩大于等于90时,输出“优秀”:
<logic:greaterEqual name="student" property="score" value="90">
优秀
</logic:greaterEqual>
7. logic:greaterThan
此为大于比较符,使用方法同logic:greaterEqual,略;
8. logic:lessEqual
此为小于等于比较符,使用方法同logic:greaterEqual,略;
9. logic:lessThan
此为小于比较符,使用方法同logic:greaterEqual,略;
10. 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>
eg3.
<logic:match header="user-agent" value="Windows">
你运行的是Windows系统
</logic:match>
11. logic:notMatch
此标签用于比较对象是否不相同,与logic:match意义相反,使用方法类似,略。
12. logic:messagePresent
该标签用于判断ActionMessages/ActionErrors对象是否存在;
eg. 如果存在error信息,将其全部输出:
<logic:messagePresent property="error">
<html:messages property="error" id="errMsg" >
<bean:write name="errMsg"/>
</html:messages>
</logic:messagePresent >
13. logic:messagesNotPresent
该标签用于判断ActionMessages/ActionErrors对象是否不存在,使用方法与logic:messagePresent类似,略
14. 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>
eg3.
<logic:present header="user-agent">
we got a user-agent header.
</logic:present>
15. logic:notPresent
此标签用于判断request对象传递参数是否不存在,意义与了logic:present相反,使用方法类似,略。
16. logic:redirect
该标签用于实现页面转向,可传递参数。
eg1. <logic:redirect href="http://www.chinaitlab.com"/>
17. logic:iterator
用于显示列表为collection的值(List ,ArrayList,HashMap等)。
eg1. 逐一输出用户列表(userlList)中用户的姓名:
<logic:iterate id="user" name="userList">
<bean:write name="user" property="name"/><br>
</logic:iterate>
eg2. 从用户列表中输出从1开始的两个用户的姓名
<logic:iterate id="user" name="userList" indexId="index" offset="1" length="2">
<bean:write name="index"/>.<bean:write name="user" property="name"/><br>
</logic:iterate>
eg3. logic:iterator标签的嵌套举例
<logic:iterate id="user" indexId="index" name="userList">
<bean:write name="index"/>. <bean:write name="user" property="name"/><br>
<logic:iterate id="address" name="user" property="addressList" length="3" offset="1">
<bean:write name="address"/><br>
</logic:iterate>
</logic:iterate>
Struts 的Logic标签可以根据特定的逻辑条件来判断网页的内容,或者循环遍历集合元素,它和HTML,Bean标签是Struts应用种最常用的三个标签.它的功能主要是比较运算,进行字符串的匹配,判断指定的内容是否存在,循环遍历集合,进行请求转发和重定向,下面具体的说明标签的用途:
<logic:equal>变量等于指定的常量
<logic:notEqual>变量不等于指定的常量
<logic:lessThan>变量小于指定的常量
<logic:lessEqual>变量小于或者等于指定的常量
<logic:geraterThan>变量大于指定的常量
<logic:geraterEqual>变量大于或等于指定的常量
以上这些标签都很类似, 有共同的属性,cookie属性指定cookie属性的值,然后用value设置的常量进行比较.header属性设置header请求头的值,也是通过 value属性设置的值进行比较.parameter属性设置一个请求参数,然后也是通过value属性设置的值进行比较.name属性设置一个变量,然后用value比较.如果同时设置了name和property属性,此时name属性指定已经存在的JavaBean,property属性指定 Bean的属性.这个标签感觉十分简单,用法也十分单一,下面研究一下进行字符串匹配的标签和判断特定内容的标签.
<logic:match> 标签是判断变量种是否包含常量字符串的,<logic:netMatch>也判断是否不包含字符串的,用name属性定义一个字符串变量,然后用value属性的值去判断变量是否包含这个字符串或者是不包含这个字符串,判断成功返回true.
<logic:empty>和<logic:netEmpty>标签可以判断指定的变量是否为空的字符串,可以通过name属性来判断一个字符串是否为null.例如是请求参数的字符串.
<logic:present> 和<logic:notPresent>标签可以判断指定的对象是否为空,这个标签的属性很多.cookie属性判断Cookie是否存在.Header属性判断HTPP请求头是否存在.role属性是判断当前的权限的用户是否是指定的安全角色.user属性是判断当前通过权限验证的用户是否拥有指定的用户名.parameter属性是判断请求的参数是否存在.name属性是用来判断指定的Bean是否存在.同时设置name和 property属性就是判断Bean种的具体属性是否存在了.
<logic:messagesPresent> 和<logic:messagesNotPresent>标签是用来判断是否在request范围内的特定的ActionMessages或者是子类ActionErrors对象.name属性是用来检索ActionMessages对象的key,property指定从 ActionMessages集合对象中检索某条消息key也就是具体的ActionMessage对象.
进行循环遍历Logic标签是Logic标签库中最复杂的标签,也是用途最广泛的标签,它能够在一个循环中遍历数组,Collection,Enumeration,Irerator或者Map中的所有元素
1) 遍历集合的标签<logic:iterate> 的name属性指定需要进行遍历的集合对象,它每次从集合中检索出一个元素,然后存放在page范围内,并以id属性指定这个字符串来命名这个元素,最好是在里面嵌套一个<bean:write>标签,把刚刚遍历的第一个id指定的字符串输出,然后在循环在输出.length属性需要遍历的元素的数目,如果没有设置length属性,就遍历集合中的所有元素.offset属性指定开始遍历的其实位置,默认值是0.indexId属性定义一个代表当前被遍历元素的系列号,这个变量存放在page范围内,可以被<bean:write>标签访问输出输出的是int的数字.例如 1.2.3.4等.可以用户输出输出的元素的系列号.
2) 遍历Map 是通过<logic:iterate>标签,name属性指定一个HashMap,存放在request范围,然后赋给id指定的变量,indexId可以指定索引编号,然后通过<bean:write>标签输出出来.在HashMap的每一个元素都是一个集合对象,所以可以嵌套使用.就是说<logic:inerate>这个标签既可以把Collection的元素弄出来负给一个变量也可以弄Map的.所以说它的功能强大.还有一个collection属性可以设置一个表达式,这个表达式返回的结果可以作为,<logic:inerate>标签输出的集合或者Map.这个属性类似name属性.
最后研究一下进行请求转发和重定向的Logic 标签,<logic:forward>标签用于请求转发,它的name属性指定转发的目标,与Struts配置文件中的<global-forwards>元素和的子元素<forward>元素匹配.简单的说就是<logic:forward>标签的name属性定义的值,要去找到<golbal-forwards>子元素<forward>元素的匹配的name属性,然后通过path指定的路径进行转发.重定向用<logic:redierct>标签它的forward,href和page属性指定重定向的目标,这几个属性和<html:link>标签的属性用法十分相似.
本文转自:http://www.diybl.com/course/4_webprogram/jsp/jsp_js/20090304/157797.html
分享到:
相关推荐
此外,源代码分析是提高编程技能的重要途径,通过查看Struts标签的源代码,我们可以了解其内部工作原理,学习如何设计和实现类似的标签库,这对提升我们的开发能力非常有帮助。因此,花时间研究这些源代码是值得的。...
总结起来,`logic`标签库是Struts框架中不可或缺的一部分,它提供了丰富的控制流标签,使得开发者可以在JSP页面上处理条件判断和循环,提高了代码的可读性和可维护性。通过深入学习和实践,开发者可以更高效地构建...
1. **标签库**:提供了一系列JSP标签,简化了视图层的开发,如logic、bean、html和tiles标签。 2. **国际化支持**:通过资源文件实现多语言环境,使得应用可以轻松地适应不同地区的用户。 3. **异常处理**:提供了...
总结,Struts标签库为Java Web开发者提供了一套强大且便捷的工具,用于构建动态网页。通过熟练掌握和恰当使用这些标签,可以提升开发效率,降低维护成本,同时提高应用的质量和用户体验。在实际项目中,合理利用...
### Struts 1 Bean 标签库详解 #### 概述 在Struts框架中,Bean标签库(Bean Tag Library)扮演着一个重要的角色。它主要用于处理与JavaBean相关的操作,比如创建、读取和更新JavaBean实例及其属性。根据官方文档及...
在给定的部分内容中,我们看到了Struts标签库的导入方式: ```jsp <%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <%@taglib uri="/WEB-INF...
总结来说,Struts的`logic`标签库是实现Web应用程序逻辑控制的重要工具,尤其在处理数据的增删改查操作时,它提供了直观且易于使用的功能。虽然现代框架有更优的选择,但对`logic`标签的了解对于理解Struts的运作...
### Struts1标签库详解:核心知识点概览 #### Bean Tags: 创建与管理Bean - **bean:cookie**: 此标签用于从客户端请求中提取cookie的值。它根据`name`属性来查找特定的cookie,如果`multiple`属性未设置,则返回一...
Struts标签是Apache Struts...总结,Struts标签通过提供一系列定制化的JSP标签,极大地简化了Web应用程序的视图层开发。熟练掌握Struts标签的使用,不仅能提升开发效率,还能帮助构建出更加健壮和易于维护的Web应用。
Struts标签库是Java开发中用于构建MVC框架Struts应用的重要组成部分,它极大地简化了JSP页面中的逻辑处理,让开发者能更专注于视图层的设计。以下是对Struts1.x中常用标签的详细总结: 1. **Bean标签库**: - `...
在本文中,我们将深入探讨Struts1的四个主要标签库:bean、logic、html和tiles,并重点讲解每个库中的关键标签。 1. **bean标签库** - `bean:define`:此标签用于在指定的作用域内定义一个新的属性,例如在JSP页面...
总结起来,Struts Logic标签库提供了丰富的功能,帮助开发者在JSP页面上实现条件判断、循环、请求转发等操作,极大地简化了MVC架构中的视图层开发。通过熟练掌握这些标签,可以更高效地构建基于Struts的Web应用程序...
总结,Struts中的logic标签提供了一套便捷的条件判断和循环控制功能,使得在JSP页面中处理业务逻辑变得更加直观和简单。理解并熟练使用这些标签,可以提升开发效率,同时保持JSP页面的清晰性,遵循MVC设计原则。
### Struts标签库详解 #### 一、Struts标签库概览 Struts是一个用于构建企业级Java Web应用的强大框架,其核心特性之一是提供了一系列的标签库来简化开发过程。Struts提供的五个主要标签库包括HTML、Bean、Logic、...
- **运行时表达式**:所有Struts标签属性都支持运行时表达式,但应避免使用scriptlet,正确使用例如`<html:link href='<%= "/" + name +"/index.jsp"'>`。 3. **Bean标签库的功能**: - **创建脚本变量**:从HTTP...
根据给定文件的部分内容,Struts标签库大致可以分为三类:`struts-html`标签库、`struts-bean`标签库和`struts-logic`标签库。下面分别介绍这三种标签库的功能和应用场景: #### 1. `struts-html` 标签库 `struts-...
Struts标签库包含了多个预定义的标签,如logic标签、bean标签、html标签和tiles标签等。这些标签主要用于处理表单数据、展示用户界面、控制流程以及与其他组件交互。下面我们将一一介绍这些标签的应用。 1. **html...
其中包含Struts标签大全 jsp Struts之HTML标签库详解 struts框架bean,html,logic标签手册等内容。不错,其中的JSP Struts之HTML标签库详解 .doc是朋友总结的。不错!
Struts1标签是Java Web开发中的一个重要组成部分,主要用于构建基于MVC(模型-视图-控制器)架构的应用程序。Struts1是一个开源框架,它简化了Web应用的开发过程,特别是视图层的构建,通过提供一系列的标签来增强...
本篇文章将详细讲解Struts标签的使用,并通过实例来帮助你理解其工作原理。 1. **Struts标签库简介** Struts提供了丰富的标签库,这些标签库主要分为两个部分:JSP标准标签库(JSTL)和Struts自定义标签库。JSTL...