【转】Struts1.x系列教程(7):Logic标签库
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/19/251967.html
Struts Logic标签库包含了如下三类标签:
1. 循环标签:iterate标签。用于枚举数组、集合类型对象中的元素。
2. 条件处理标签:用于是否相等、比较大小等判断。这类标签有empty、equal 、greaterEqual、greaterThan、lessEqual、lessThan、match、messagesNotPresent、messagesPresent、notEmpty、notEqual、notMatch、notPresent、present。
3. 流控制标签:用于转向其他的页面。redirect和forward属性这类标签。
一、循环标签(iterate)
<logic:iterate>标签用于对数组以及集合类型对象中的元素进行枚举。<logic:iterate>标签在功能上和JSTL中的<c:forEach>标签非常相似。<logic:iterate>标签的常用属性的意义和作用如下:
1. id:一个表示集合中的每一个元素的变量,被保存在page范围中。
2. name:一个数组或集合对象名,或是一个包含有getter方法的JavaBean。
3. property:如果name是一个JavaBean,那么property就是这个JavaBean的属性名。<logic:iterate>标签通过这个属性名获得要枚举的数组或集合对象。
4. indexId:循环过程中的索引(从0开始),相当于Java中在for循环中使用变量i来获得循环中每一项的索引。
5. offset:偏移量。也就是从数组或集合的第几个元素开始枚举。
6. length:从offset开始,要枚举的元数的个数。
7. scope:name变量保存的范围。如果不指定,<logic:iterate>标签将搜索所有的范围。也就是说,依次按着page、request、session和application进行搜索,如果在不同的范围有同样的变量名,以先搜索到的为准。
下面的例子演示了<logic:iterate>标签的使用。在<samples工程目录>目录中建立一个iterate.jsp文件,代码如下:
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<html>
<head>
<title>测试iterate标签</title>
</head>
<body>
<%
String array[] = { "bill", "王明", "赵阳" };
pageContext.setAttribute("array", array);
List<String> list = new LinkedList<String>();
list.add("计算机");
list.add("英语");
pageContext.setAttribute("list", list);
pageContext.setAttribute("iterator", list.iterator());
Map<String, String> map = new HashMap<String, String>();
map.put("book", "书");
map.put("apple", "苹果");
pageContext.setAttribute("keySet", map.keySet());
pageContext.setAttribute("entrySet", map.entrySet());
%>
<logic:iterate id="s" name="array" indexId="i" offset="1" length="1">
array[<bean:write name="i"/>] = <bean:write name="s"/>
</logic:iterate>
<br>
<jsp:useBean id="form" class="actionform.HtmlTagsForm"/>
<jsp:setProperty name="form" property="hobbies" value="<%= new String[]{"计算机","旅游","摄影"} %>"/>
<logic:iterate id="s" name="form" property="hobbies">
<bean:write name="s"/>
</logic:iterate>
<br>
<logic:iterate id="s" name="list" indexId="i">
list[<bean:write name="i"/>] = <bean:write name="s"/>
</logic:iterate>
<br>
<logic:iterate id="s" name="iterator" indexId="i" offset="1">
list[<bean:write name="i"/>] = <bean:write name="s"/>
</logic:iterate>
<br>
<logic:iterate id="entry" name="entrySet">
<bean:write name="entry" property="key"/> = <bean:write name="entry" property="value"/>
</logic:iterate>
</body>
</html>
在IE中输入如下的URL测试iterate.jsp:
http://localhost:8080/samples/iterate.jsp
二、条件处理标签
条件处理标签可分为如下三类:
1. Test:
present、notPresent、empty、notEmpty、 messagesPresent、messagesNotPresent
2. 比较:equal,
lessThan, lessEqual, greaterThan和greaterEqual
3. 字符串匹配: match、notMatch
所有的条件处理标签都有name和property属性。分别用来指定对象名和属性名。如下面的代码演示了<logic:empty>和<logic:lessThan>标签的使用:
var为空
</logic:empty>
<logic:lessThan name="employee" property="age" value="18">
不符合工作年龄
</logic:lessThan>
三、流控制标签(redirect和forward)
<logic:redirect>用于重定向到其他的Web资源。用法如下:
<logic:forward>标签用于把当前的请求转发给其他的静态资源、JSP页或Servlet。在功能和使用上和<jsp:forward>类似。
关于Logic标签库的更详细的信息请读者参阅Struts的官方网站,URL如下:
http://struts.apache.org/1.2.9/userGuide/struts-logic.html
【转】Struts1.x系列教程(7):Logic标签库的更多相关文章
- 【转】Struts1.x系列教程(4):标签库概述与安装
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...
- Spring 系列教程之自定义标签的解析
Spring 系列教程之自定义标签的解析 在之前的章节中,我们提到了在 Spring 中存在默认标签与自定义标签两种,而在上一章节中我们分析了 Spring 中对默认标签的解析过程,相信大家一定已经有 ...
- Spring 系列教程之默认标签的解析
Spring 系列教程之默认标签的解析 之前提到过 Spring 中的标签包括默认标签和自定义标签两种,而两种标签的用法以及解析方式存在着很大的不同,本章节重点带领读者详细分析默认标签的解析过程. 默 ...
- JSTL标签库的基本教程之核心标签库(二)
JSTL标签库的基本教程之核心标签库(二) 核心标签库 标签 描述 <c:out> 用于在JSP中显示数据,就像<%= ... > <c:set> 用于保存数据 & ...
- 【转】Struts1.x系列教程(6):Bean标签库
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...
- 【转】Struts1.x系列教程(5):HTML标签库
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...
- [转]Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/13/251101.html 本系列教程将详细介绍Struts 1.x的基本原理和使用方法, ...
- JSTL标签库的基本教程之核心标签库(一)
JSTL介绍 Java Server Pages Standard Tag Libray(JSTL):JSP标准标签库,它封装了JSP应用的通用核心功能.JSTL支持通用的.结构化的任务,比如迭代,条 ...
- 【转】Struts1.x系列教程(2):简单的数据验证
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/13/251197.html 简单验证从本质上说就是在服务端 ...
随机推荐
- 关于在VS 上发布网站
在vs 上建立的网站只能用 localhost 进行访问,想要自己本机上的网站发布到IIS上面,这样就可以直接用 IP 地址来访问了,那么照如下的方式做: 1. 首先需要使用vs 发布自己的网站 1. ...
- MUI - 侧滑菜单
各大APP必备的侧滑菜单栏,支持手势滑动.包含QQ式.美团式等 结构模板 这里是示例Html, 必须使用Mui框架才能使用. 主容器 <div class="mui-off-canva ...
- [译]line clampin让文字在指定的行数内省略号显示
说明 (1)原文:http://css-tricks.com/line-clampin/ (2)非直译 需求: 当文字长度超过N行时,文字后面自动用省略号补齐. 比如,你有如下的HTML代码: < ...
- 【iCore3 双核心板】DEMO 1.0 测试程序发布
iCore3 Demo V1.0 程序说明 一.概要 本资料包包含5个文件夹: 1.“arm”里是 icore3上 arm的程序包,开发环境为 KEIL 5.17: 2.“fpga”里是 icore3 ...
- c语言的输入输出函数
参考文章: http://blog.sina.com.cn/s/blog_784f40b80100psg9.html C语言输入输出函数分为两类: 1.格式化输入输出函数 2.非格式化输入输出 --- ...
- 生成器(generator)内部解析
#http://kb.cnblogs.com/page/87128/(未看完)
- Qt字符串类——2. 查询字符串数据
(1)函数QString::startsWith()判断一个字符串是否以某个字符串开头.此函数具有两个参数,第一个参数指定了一个字符串,第二个参数指定是否大小写敏感(默认情况下,是大小写敏感的),例如 ...
- LeetCode Minimum Height Trees
原题链接在这里:https://leetcode.com/problems/minimum-height-trees/ 题目: For a undirected graph with tree cha ...
- tesseract ocr文字识别Android实例程序和训练工具全部源代码
tesseract ocr是一个开源的文字识别引擎,Android系统中也可以使用.可以识别50多种语言,通过自己训练识别库的方式,可以大大提高识别的准确率. 为了节省大家的学习时间,现将自己近期的学 ...
- sql sp_xml_preparedocument 函数运用实例
表结构: CREATE FUNCTION f_splitSTR( ), --待分拆的字符串 ) --数据分隔符 ))) AS BEGIN --创建分拆处理的辅助表(用户定义函数中只能操作表变量) DE ...