(转)logic:present 和 logic:empty的用法
来源:互联网 发布:安工大网络接入系统 编辑:程序博客网 时间:2024/06/08 08:30
logic:present 标签只是用来判断在某一个作用域范围内是否存在着某一个变量, 例如:
<logic:present name="message" scope="request">
在request作用域范围内存在message变量
</logic:present>
<logic:notPresent name="message" scope="request">
在request作用域范围内不存在message变量
</logic:notPresent>
自己试试看看! 如果要取出message变量中的值的话,只需要用简单的EL语法就可以了。 例如: ${ message } 这样就把message变量里的OK打印出来了!!
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的用法
- logic:present 和 logic:empty的用法
- logic:present 和 logic:empty的用法
- logic:present 和 logic:empty的用法
- logic:present 和 logic:empty的用法
- (转)logic:present 和 logic:empty的用法
- struts1.x logic:present 和 logic:empty 用法
- Sturts tag 中logic:present 和logic:empty 的区别
- Sturts tag 中logic:present 和logic:empty 的区别
- logic:present 和 logic:empty标签
- <logic:empty> <logic:present>之间的区别
- logic标签的equal,logic:present用法
- 简明:logic:empty与logic:present的区别
- 测试 logic:empty,notEmpty 以及 logic:present,notPresent
- bean:define、logic:present、logic:empty使用总结
- <logic:present><logic:iterator>的使用
- logic:present
- logic:present
- J2EE Web项目乱码解决方案(统一编码utf8)
- 几种任务调度的 Java 实现方法与比较
- [Java]读取文件方法大全
- Date、String、Calendar类型之间的转化
- tld标签库的使用
- (转)logic:present 和 logic:empty的用法
- (转)文件下载(只需要简单的四步),Java中都通用
- 问题解决:java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;
- j2ee过滤器设置
- js向jsp页面/后台传值中文乱码
- encodeURIComponent的使用
- Unity3D游戏开发之Lua与游戏的不解之缘(上)
- Quartz管理类
- DWR中取得request,session等信息