loginc:empty和logic:not empty的区别和联系(转)
来源:互联网 发布:淘宝店铺店招类型招牌 编辑:程序博客网 时间:2024/06/01 08:20
logic:empty标签判断脚本变量是否为null,是否是一个空的字符串(长度为0),是否是一个空的collection或map(调用isEmpty()方法来判断)。logic:notEmpty标签类似。
<logic:empty name="myBean">
The bean is missing
</logic:empty>
<logic:notEmpty name="myBean">
The bean is not missing
</logic:notEmpty>
上段代码表示当一个名为myBean的bean在所有的scope中都不存在时,输出The bean is missing;存在的话输出The bean is not missing。
此标签有三个属性: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
- loginc:empty和logic:not empty的区别和联系(转)
- Sturts tag 中logic:present 和logic:empty 的区别
- Sturts tag 中logic:present 和logic:empty 的区别
- logic:present 和 logic:empty的用法
- logic:present 和 logic:empty的用法
- logic:present 和 logic:empty的用法
- logic:present 和 logic:empty的用法
- logic:present 和 logic:empty的用法
- (转)logic:present 和 logic:empty的用法
- empty 与isset 的区别和联系
- <logic:empty> <logic:present>之间的区别
- logic:present 和 logic:empty标签
- DBNull.Value,null,String.Empty之间的区别和联系
- EL表达式中${} != null和${!empty}和${not empty}的区别
- NULL和Empty的区别
- "" 和string.empty的区别
- empty()和isset()的区别
- String.Empty和""的区别
- OSGi体系结构
- Android 资源目录的相关知识
- 地理坐标系与投影坐标系的区别
- T-SQL入門攻略之11-查看数据库对象
- 动态启动dll上的函数。
- loginc:empty和logic:not empty的区别和联系(转)
- 关于boost中数据类型转化问题
- 寻找缺失的数字...
- GNU make中文手册
- C再学笔记
- 堆分配串一些操作
- 配置-当遇到泛型时怎么办
- T-SQL入門攻略之12-创建数据表
- poj2244