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
分享到:
相关推荐
可以结合其他逻辑标签(如 `<logic:equal>`、`<logic:notEmpty>` 等)来实现更复杂的条件迭代逻辑。 ##### 2. 指定索引 使用 `<bean:size>` 和 `<bean:write>` 可以获取集合的大小,并在迭代过程中指定元素的索引...
<logic:notEmpty name="userList"> <!-- 如果userList非空,则执行这里的代码 --> </logic:notEmpty> ``` #### 3. `logic:equal` 用于比较两个值是否相等。支持基本类型以及对象属性的比较。 **示例1:** 检查...
与`logic:empty`相反,`logic:notEmpty`标签用于判断对象不为空时执行其内部内容。这个标签常用来处理非空数据的情况。 3. `logic:equal`和`logic:notEqual` 这两个标签用于比较两个值是否相等或不等。`logic:equal...
其中,`<logic:iterate>`标签是一个常用且强大的迭代标签,用于遍历集合或数组中的元素,并可以结合其他逻辑标签如`<logic:equal>`、`<logic:notEmpty>`等来实现复杂的业务逻辑。 ### `<logic:iterate>`标签详解 `...
- `logic:empty` 和 `logic:notEmpty`:这两个标签用于判断变量是否为空。`logic:empty` 检查变量是否为null,空字符串,或者空的集合或Map。如果满足这些条件,则会显示标签内部的内容。相反,`logic:notEmpty` 则...
7. `logic:greaterThan`:这个标签用于判断是否大于指定值,使用方法与`logic:greaterEqual`相似。 8. `logic:lessEqual`:用于判断是否小于等于指定值,用法与`logic:greaterEqual`一致。 9. `logic:lessThan`:...
* `<logic:notEmpty>`:判断变量中是否不为空 * `<logic:present>`:判断指定的 JavaBean、Cookie 等是否存在 * `<logic:notPresent>`:判断指定的 JavaBean、Cookie 等是否不存在 * `<logic:messagesPresent>`:...
除了上述基本用法,`<logic:iterate>`还可以与其他逻辑标签结合使用,例如`<logic:notEmpty>`、`<logic:equal>`等,实现更复杂的条件判断和流程控制。 需要注意的是,随着技术的发展,Struts 1的`logic`标签库在...
一、`<logic:notEmpty>`标签 这个标签用于检查指定集合或属性是否为空。如果内容不为空,那么它包含的JSP代码块将会被渲染。例如,你可以用它来检查一个列表是否为空,然后决定是否显示“无数据”提示。 ```jsp ...
- `<logic:notEmpty>`:检查变量不是`null`且非空,如果`list`有元素,该标签就会生效。 4. **对象存在性判断标签**: - `<logic:present>`:检查指定的对象或变量是否存在于指定的作用域(如request,session)...
`logic:notEmpty` 标签的作用与`logic:empty`相反,当对象不为空时,它的内容会被处理。这个标签常用于反向逻辑判断。 3. **logic:equal 和 其他比较标签** `logic:equal` 标签用于比较两个值是否相等,它可以...
- `<logic:notEmpty>`则是`<logic:empty>`的反向操作。 - `<logic:iterate>`可用于遍历集合,并对每个元素执行标签体内的代码。 总的来说,逻辑标签库是JSP开发中不可或缺的一部分,它提高了代码的可读性和维护性,...
5. `<logic:empty>`和`<logic:notEmpty>`: 类似于上述的`present`和`notPresent`,这两个标签检查的是集合或字符串是否为空。在插入数据时,可以确保非空字段已填充;在删除操作中,确认要删除的数据不为空,避免因...
首先,我们来看一下`<logic:present>`和`<logic:notPresent>`这两个标签。它们主要用于检查请求、session或application作用域中是否存在某个对象。例如,如果要在页面上显示用户信息,但只有当用户登录时才显示,...
本文将详细介绍 Struts 1.2 中常见的标签及其使用方法。 #### HTML 类标签 1. **html:textproperty** - **语法**:`<html:textproperty property="属性名" form="表单对象名"/>` - **功能**:用于显示文本框,...
- `<logic:empty>` / `<logic:notEmpty>`:用于检查变量是否为空。 - 示例:`<logic:empty name="attr1">attr1为空</logic:empty>` - `<logic:present>` / `<logic:notPresent>`:检查变量是否存在。 - 示例:`...
- 内容:展示如何使用Struts来动态显示内容,介绍Tiles组件的使用方法,验证用户输入的方法,国际化支持,以及Struts如何与数据服务进行交互。 - 示例:通过具体的例子来演示如何构建用户友好的页面。 4. **...
在这个实例中,`<logic:notEmpty name="yaoqiuList">`确保`yaoqiuList`不为空,即至少存在一个元素,这是遍历和进一步处理列表的前提条件。 #### 3. `<logic:iterate>`标签 `<logic:iterate>`标签允许遍历集合或...
* logic:notEmpty 标签:判断某个集合是否为空。 * logic:present 标签:判断某个对象是否存在。 通过学习和掌握这些标签,可以快速地完成 Struts 相关的任务,并提高 web 应用程序的开发效率。