logic:present 和 logic:empty的用法 (转)
| <logic:empty name="myBean"> The bean is missing </logic:empty> <logic:notEmpty name="myBean"> The bean is not missing </logic:notEmpty> |
此标签有三个属性:name、property和scope。
logic:present 和 logic:empty他们的用法大致相同,唯一的不同点是:两者在对空字符串的处理上存在着不同。
下面为index.jsp中的代码:
1 <logic:notPresent name="users">
2 notpresent
3 </logic:notPresent>
4 <logic:notEmpty name="users">
5 notempty
6 </logic:notEmpty>
7 <logic:empty name="users">
8 empty
9 </logic:empty>
10 <logic:present name="users">
11 present
12 </logic:present>
当第一次访问该JSP的时候,由于users没有定义,并且也不在page,request,session,application任何一个作用域中,因此输出的结果为notpresent,empty。
下面我们增加一个action,让他在index.jsp之前执行,然后再跳转到index.jsp中,同时在该action的execute方法中增加如下代码:
1String userName = "";
2request.setAttribute("users", userName);
3return new ActionForward("/index.jsp");
4这里将userName保存在request中,key为users,再将请求转发至index.jsp中,但是userName的值为一个空字符串,转发过后,输出的值为:empty,present
这里我们再做一次改动,将action的execute方法中的代码改为:
1String userName = null;
2request.setAttribute("users", userName);
3return new ActionForward("/hello.jsp");
4不同的是userName 不再为空字符串了,而是null值,当转发至index.jsp后,输出的值为:notpresent,empty 。
对比这几次改动,我们可以得出结论:
对
于没有在page,request,session,application中定义或者是没有分配内存空间(null值)的变量,这两个标记处理的方法是
一致的,都会认为此变量不存在(notpresent)或者为空(empty)。而对于空字符串""值,他们的处理就不一样
了,logic:present 标记认为空字符串仍然是存在的,也就是说,只要是引用了一块内存空间的变量,logic:present
就会返回present
;而logic:empty则认为空字符串仍然为空,由此得出,在logic:empty看来,变量不仅仅要引用一块内存空间,而且该地址空间的值不能为
空字符串,否则都认为该变量为空,都会返回empty
logic:present 和 logic:empty的用法 (转)的更多相关文章
- Struts 1 之<logic>标签库
1. logic:empty logic:empty标签是用来判断是否为空的.如果为空,该标签体中嵌入的内容就会被处理.该标签用于以下情况: 当Java对象为null时 当String对象为" ...
- struts标签--logic总结
1. logic:empty 该标签是用来判断是否为空的.如果为空,该标签体中嵌入的内容就会被处理.该标签用于以下情况: 1)当Java对象为null时: 2)当String对象为"&quo ...
- javaWeb中struts开发——Logic标签
1.Struts标签的logic标签 Logic标签是逻辑标签,是Struts中比较重要的标签,完成各种逻辑运算操作,可以直接支持全局调转. 2.1<logic:present><l ...
- Struts1 标签库 说明
Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML标签 : 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 ...
- Struts1标签
Struts1 标签库 说明 Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML 标签 : 用来创建能够和Struts 框架和其他相应的HT ...
- struts2中的s标签
那就从简单的标签说起吧!1.x中常用的标签只有4中html.bean.logic.tiles 而struts2.0里的标签却没有分类,只用在jsp头文件加上 <%@ taglib prefix= ...
- Struts框架2ActionError类 内部资料 请勿转载 谢谢合作
ActionError类从不独立进行错误处理,它们总是被存储在ActionErrors对象中.ActionErrors对象保存ActionError类的集合以及它们特定的属性值,我们可以使用自己定义的 ...
- struts标签<logic:iterate>的用法
<logic:iterate>主要用来处理在页面上输出集合类,集合一般来说是下列之一: 1. java对象的数组 2. ArrayList.Vector.HashMap等 具体用法请参考s ...
- 【转】Struts1.x系列教程(7):Logic标签库
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...
随机推荐
- Immutable Object模式
多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁.而锁本身又会带来一些问题和开销.Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线 ...
- C语言头文件的作用
C99中规定, 所有顶层的默认存储类标志符都是extern ! 头文件中声明的函数,默认都是extern前缀.但是为了我们程序员方便,我们采取下面的手段: 我个人认为是extern催生了头文件的诞生. ...
- Delphi在win7/vista下写注册表等需要管理员权限的解决方案
看到论坛好多人问win7下写注册表的问题,我结合自己的理解写了一点东西,首先声明一下,本人初学Delphi,水平有限,大家见笑了,有什么不对之处请老鸟多指点. [背景]win7/Vista提供的UAC ...
- PHP+MYSQL实现输出打印数据库表结构和输出表内容
效果图1 <form id="form1" name="form1" action="2.php" method="get& ...
- wcf 请考虑增加操作超时
发送到 net.tcp://192.168.1.18:8732/CallbackService 的请求操作在配置的超时(00:00:59.9879994)内未收到回复. 分配给此操作的时间可能已经是更 ...
- BZOJ1599: [Usaco2008 Oct]笨重的石子
1599: [Usaco2008 Oct]笨重的石子 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 758 Solved: 513[Submit][ ...
- 数据结构(莫队算法):国家集训队2010 小Z的袜子
[题目描述] 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到 ...
- JDK 1.6.0和 6.0 有啥区别,JavaTM SE 6 的平台名字和版本号的说明(转)
一直这么理解,今天才看到官方的解释,真是有点汗颜. 核心就是 6.0用于平台和产品的名字,而1.6.0用于开发者. 他们指的是同一个东西. 原文地址:http://java.sun.com/javas ...
- C#针对DataTable进行分页方法
以下的分页方法是针对数据量不是非常大的数据进行的,是在内存中进行的分页操作. /// <summary> /// DataTable分页 /// </summary> /// ...
- Unity Skin Shader Optimized
Shader "Skin Shader" { Properties { _MainTex ("Diffuse (RGB)", 2D) = "white ...