显后面加什么字好听:jstl学习心得(2)——c:forEach ,c:forTokens, c:catch (转)
来源:百度文库 编辑:偶看新闻 时间:2024/10/03 16:27:46
jstl学习心得(2)——c:forEach ,c:forTokens, c:catch
c:forEach
用于循环的标签
为循环控制标签。它的属性和描述如表9.7所示:
表9.7标签属性和说明
属性
描述
items
进行循环的集合(可选)
begin
开始条件(可选)
end
结束条件(可选)
step
循环的步长,默认为1(可选)
var
做循环的对象变量名,若存在items属性,则表示循环集合中对象的变量名(可选)
varStatus
显示循环状态的变量(可选)
语法
语法1:迭代一集合对象之所有成员
本体内容
本体内容
语法2:迭代指定的次数
本体内容
本体内容
标签具有以下一些属性:
var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。
items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。
varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。
begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。
end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。
step:迭代的步长。
标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:
java.util.Collection:调用iterator()来获得的元素。
java.util.Map:通过java.util.Map.Entry所获得的实例。
java.util.Iterator:迭代器元素。
java.util.Enumeration:枚举元素。
Object实例数组:数组元素。
基本类型值数组:经过包装的数组元素。
用逗号定界的String:分割后的子字符串。
javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。
不论是对整数还是对集合进行迭代,的varStatus 属性所起的作用相同。和var属性一样,varStatus用于创建限定了作用域的变量(改变量只在当前标签体内起作用)。不过,由varStatus属性命名的变量并不存储当前索引值或当前元素,而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。该类包含了一系列的特性,它们描述了迭代的当前状态,如下这些属性的含义如下所示:
current:当前这次迭代的(集合中的)项。
index:当前这次迭代从0开始的迭代索引。
count:当前这次迭代从1开始的迭代计数。
first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。
last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。
begin:begin属性的值。
end:end属性的值
step:step属性的值
下面就来看一个个基本的例子,表格隔行背景色变化
bgcolor="#CCCCFE" align="left"> xxx
bgcolor="#CCCCFE" align="left">
xxx
限制
·假若有begin属性时,begin必须大于等于 0
·假若有end属性时,必须大于begin
·假若有step属性时,step必须大于等于0
Null 和 错误处理
·假若items为null时,则表示为一空的集合对象
·假若begin大于或等于items时,则迭代不运算
说明
如果要循序浏览一个集合对象,并将它的内容显示出来,就必须有items属性。
范例
下面的范例 Core_forEach.jsp是将数组中的成员一个个显示出来的: ??
Core_forEach.jsp
<%@ page contentType="text/html;charset=GB2312 " %> <%@ taglib prefix="c" uri="" %>CH7 - Core_forEach.jsp
<% String atts[] = new String [5]; atts[0]="hello"; atts[1]="this"; atts[2]="is"; atts[3]="a"; atts[4]="pen"; request.setAttribute("atts", atts); %> $ <%@ page contentType="text/html;charset=GB2312 " %>
<%@ taglib prefix="c" uri="" %>
CH7 - Core_forEach.jsp
<%
String atts[] = new String [5];
atts[0]="hello";
atts[1]="this";
atts[2]="is";
atts[3]="a";
atts[4]="pen";
request.setAttribute("atts", atts);
%>
$
在上述范例中,笔者先产生一个字符串数组,然后将此数组atts储存至Request的属性范围中,再用将它循序浏览一遍。这里items表示被浏览的集合对象,var用来存放指定的集合对象中成员,最后使用将item的内容显示出来,执行结果如图-8所示。
注意
varName的范围只存在的本体中,如果超出了本体,则不能再取得varName的值。上个例子中,若$ 是在之后执行时,如:
$
$
$则不会显示item的内容。
除了支持数组之外,还有标准J2SE的集合类型,例如:ArrayList、List、LinkedList、Vector、Stack和Set 等等;另外还包括java.util.Map类的对象,例如:HashMap、Hashtable、Properties、Provider和Attributes。
还有begin、end和step这三种属性:begin主要用来设定在集合对象中开始的位置(注意:第一个位置为0);end用来设定结束的位置;而step则是用来设定现在指到的成员和下一个将被指到成员之间的间隔。我们将之前的范例改成如下:
Core_forEach1.jsp ??
<%@ page contentType="text/html;charset=GB2312" %> <%@ taglib prefix="c" uri="" %>CH7 - Core_forEach1.jsp
<%String atts[] = new String [5]; atts[0]="hello"; atts[1]="this"; atts[2]="is"; atts[3]="a"; atts[4]="pen"; request.setAttribute("atts", atts); %> $ <%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="" %>
CH7 - Core_forEach1.jsp
<%String atts[] = new String [5];
atts[0]="hello";
atts[1]="this";
atts[2]="is";
atts[3]="a";
atts[4]="pen";
request.setAttribute("atts", atts);
%>
$
中指定的集合对象atts将会从第2个成员开始到第5个成员,并且每执行一次循环都会间隔一个成员浏览。因此结果是只显示atts[1]和atts
本文来自CSDN博客,转载请标明出处:
本文来自CSDN博客,转载请标明出处:
测试用例:
<%Map map = new HashMap();
map.put("k1", "v1");
map.put("k2", "v2");
map.put("k3", "v3");
pageContext.setAttribute("map", map);
%>
${temp.key } = ${temp.value }
暂无数据
${vs.count }
${user.name }
${user.age }
${user.group.name }
==================================
c:forTokens
${v }
测试结果:
c:forTokens 分隔字符
1
2
3
4
5
6
========================================
<%
try{
int i = 1/0;
}catch(Exception e){
out.println(e.getMessage());
}
%>
c:forEach
用于循环的
表9.7
属性
描述
items
进行循环的集合(可选)
begin
开始条件(可选)
end
结束条件(可选)
step
循环的步长,默认为1(可选)
var
做循环的对象变量名,若存在items属性,则表示循环集合中对象的变量名(可选)
varStatus
显示循环状态的变量(可选)
语法
语法1:迭代一集合对象之所有成员
本体内容
语法2:迭代指定的次数
本体内容
标签具有以下一些属性:
var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。
items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。
varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。
begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。
end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。
step:迭代的步长。
标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:
java.util.Collection:调用iterator()来获得的元素。
java.util.Map:通过java.util.Map.Entry所获得的实例。
java.util.Iterator:迭代器元素。
java.util.Enumeration:枚举元素。
Object实例数组:数组元素。
基本类型值数组:经过包装的数组元素。
用逗号定界的String:分割后的子字符串。
javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。
不论是对整数还是对集合进行迭代,的varStatus 属性所起的作用相同。和var属性一样,varStatus用于创建限定了作用域的变量(改变量只在当前标签体内起作用)。不过,由varStatus属性命名的变量并不存储当前索引值或当前元素,而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。该类包含了一系列的特性,它们描述了迭代的当前状态,如下这些属性的含义如下所示:
current:当前这次迭代的(集合中的)项。
index:当前这次迭代从0开始的迭代索引。
count:当前这次迭代从1开始的迭代计数。
first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。
last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。
begin:begin属性的值。
end:end属性的值
step:step属性的值
下面就来看一个个基本的例子,表格隔行背景色变化
xxx
限制
·假若有begin属性时,begin必须大于等于 0
·假若有end属性时,必须大于begin
·假若有step属性时,step必须大于等于0
Null 和 错误处理
·假若items为null时,则表示为一空的集合对象
·假若begin大于或等于items时,则迭代不运算
说明
如果要循序浏览一个集合对象,并将它的内容显示出来,就必须有items属性。
范例
下面的范例 Core_forEach.jsp是将数组中的成员一个个显示出来的: ??
Core_forEach.jsp
<%@ page contentType="text/html;charset=GB2312 " %> <%@ taglib prefix="c" uri="" %>
<%@ taglib prefix="c" uri="" %>
<%
String atts[] = new String [5];
atts[0]="hello";
atts[1]="this";
atts[2]="is";
atts[3]="a";
atts[4]="pen";
request.setAttribute("atts", atts);
%>
$
在上述范例中,笔者先产生一个字符串数组,然后将此数组atts储存至Request的属性范围中,再用将它循序浏览一遍。这里items表示被浏览的集合对象,var用来存放指定的集合对象中成员,最后使用将item的内容显示出来,执行结果如图-8所示。
注意
varName的范围只存在的本体中,如果超出了本体,则不能再取得varName的值。上个例子中,若$ 是在之后执行时,如:
$
$则不会显示item的内容。
除了支持数组之外,还有标准J2SE的集合类型,例如:ArrayList、List、LinkedList、Vector、Stack和Set 等等;另外还包括java.util.Map类的对象,例如:HashMap、Hashtable、Properties、Provider和Attributes。
还有begin、end和step这三种属性:begin主要用来设定在集合对象中开始的位置(注意:第一个位置为0);end用来设定结束的位置;而step则是用来设定现在指到的成员和下一个将被指到成员之间的间隔。我们将之前的范例改成如下:
Core_forEach1.jsp ??
<%@ page contentType="text/html;charset=GB2312" %> <%@ taglib prefix="c" uri="" %>
<%@ taglib prefix="c" uri="" %>
<%String atts[] = new String [5];
atts[0]="hello";
atts[1]="this";
atts[2]="is";
atts[3]="a";
atts[4]="pen";
request.setAttribute("atts", atts);
%>
$
中指定的集合对象atts将会从第2个成员开始到第5个成员,并且每执行一次循环都会间隔一个成员浏览。因此结果是只显示atts[1]和atts
本文来自CSDN博客,转载请标明出处:
本文来自CSDN博客,转载请标明出处:
测试用例:
c:forEach map遍历
<%Map map = new HashMap();
map.put("k1", "v1");
map.put("k2", "v2");
map.put("k3", "v3");
pageContext.setAttribute("map", map);
%>
${temp.key } = ${temp.value }
==================================
c:forTokens
c:forTokens 分隔字符
${v }
测试结果:
c:forTokens 分隔字符
1
2
3
4
5
6
========================================
c:catch 捕获异常,放入变量中
<%
try{
int i = 1/0;
}catch(Exception e){
out.println(e.getMessage());
}
%>
<% int i = 1/0;%>
错误:${err }
学习心得
学习心得
学习心得
学习心得
学习心得
JSTL问题:
jstl 读取 XML
请问JSTL语法规则是什么?
谁帮我写学习心得?(我是小学六年级的)
团章学习心得
团章学习心得
团章学习心得
团章学习心得
团章学习心得
团组织学习心得
思想道德学习心得
团员意识学习心得
业务学习心得
中学生学习心得
武术学习心得
写学习心得
八荣八耻学习心得
八荣八耻学习心得!
八荣八耻学习心得
最新新闻 沃茨手表网
CSDN程序文档
上海旅游网 神马百科 程序博客
香蕉皮作业帮 景德镇新闻网 余姚信息网
作业帮作业网 互助问答吧 16楼社区
解题作业帮艺术百科亮点网神马百科
神马文学网
拍题作业网
UC知道
我爱散文网
北方网
科学网
第一文库网
微思作业网
我要文章网
都市新闻网西欧教育西山新闻网好楼房产信息网
九乡新闻网农企信息网仙女们写真照片音乐简谱网米粒芽学校大全网95后网站汝南网欧普网宝宝故事网
神马品牌网
杭州交通信息网/">
杭州市高中教育平台
查人人中国名人网
爱美之人
上车买票
安卓系统之家
中科新闻网
科学院研究所
高考快车
高考志愿帮
大学志愿大全
高校问答
高考问答
中考百科
大学知道
久游网