JSTL详解--Core 标签库

在 JSTL1.1中有以下这些标签库是被支持的: Core标签库、 XML processing标签库、 I18N formatting标签库、 Database access标签库、 Functions标签库。对应的标识符见表2所示:
表2 标签库的标识符
标签库 URI 前缀
Core http://java.sun.com/jsp/jstl/core c
XML processing http://java.sun.com/jsp/jstl/xml x
I18N formatting http://java.sun.com/jsp/jstl/fmt fmt
Database access http://java.sun.com/jsp/jstl/sql sql
Functions http://java.sun.com/jsp/jstl/functions fn

下面看例5,简单使用标签库的示例。
例5:简单 JSTL标签库示例
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>




${i}





在该示例的 JSP页面中声明了将使用 Core标签库,它的 URI为“ http://java.sun.com/jsp/jstl/core”,前缀为“ c”。之后,页面中 标签就是使用了 JSTL的标签进行了工作。对于该标签的功能,这里暂时不作具体讲解,只是让读者能够有个简单的概念,了解怎样定义和使用标签库。

Core标签库,又被称为核心标签库,该标签库的工作是对于 JSP页面一般处理的封装。在该标签库中的标签一共有 14个,被分为了四类,分别是:
 多用途核心标签:
 条件控制标签:
 循环控制标签:
 URL相关标签:
以下是各个标签的用途和属性以及简单示例。
1. 用于显示的标签
标签是一个最常用的标签,用于在 JSP中显示数据。它的属性和描述如表 3所示:
表 3   标签属性和说明

属性 描述
value 输出到页面的数据,可以是 EL 表达式或常量(必须)
default 当 value 为 null 时显示的数据(可选)
escapeXml 当设置为 true 时会主动更换特殊字符,比如“ <,>,& ”(可选,默认为 true )

在 JSTL1.0的时候,在页面显示数据必须使用 来进行。然而,在 JSTL1.1中,由于 JSP2.0规范已经默认支持了 EL表达式,因此可以直接在 JSP页面使用表达式。下面看一个示例。

该示例将从 Session查找名为“ anyValue”的参数,并显示在页面,若没有找到则显示“ no value”。

2. 用于赋值的标签
标签用于为变量或 JavaBean中的变量属性赋值的工作。它的属性和描述如表4所示:
表 4   标签属性和说明

属性 描述
value 值的信息,可以是 EL 表达式或常量
target 被赋值的 JavaBean 实例的名称,若存在该属性则必须存在 property 属性(可选)
property JavaBean 实例的变量属性名称(可选)
var 被赋值的变量名(可选)
scope 变量的作用范围,若没有指定,默认为 page (可选)

当不存在 value的属性时,将以包含在标签内的实体数据作为赋值的内容。下面看一个示例:

${oneString}

该示例将为名为“ oneString”的变量赋值为“ this is andy”,其作用范围为 page。
3.用于删除的标签
标签用于删除存在于 scope中的变量。它的属性和描述如表5所示:
表5   标签属性和说明

属性 描述
var 需要被删除的变量名
scope 变量的作用范围,若没有指定,默认为全部查找(可选)
下面看一个示例:

${sessionScope.sampleValue}

该示例将存在于 Session中名为“ sampleValue”的变量删除。下一句 EL表达式显示该变量时,该变量已经不存在了。
4 .用于异常捕获的标签
标签允许在 JSP页面中捕捉异常。它包含一个 var属性,是一个描述异常的变量,改变量可选。若没有 var属性的定义,那么仅仅捕捉异常而不做任何事情,若定义了 var属性,则可以利用 var所定义的异常变量进行判断转发到其他页面或提示报错信息。看一个示例。

${param.sampleSingleValue[9] == 3}

${err}
当“ ${param.sampleSingleValue[9] == 3}”表达式有异常时,可以从 var属性“ err”得到异常的内容,通常判断“ err”是否为 null来决定错误信息的提示。
5 .用于判断的标签
标签用于简单的条件语句。它的属性和描述如表 6所示:
表6   标签属性和说明

属性 描述
test 需要判断的条件
var 保存判断结果 true 或 false 的变量名,该变量可供之后的工作使用(可选)
scope 变量的作用范围,若没有指定,默认为保存于 page 范围中的变量(可选)
下面看一个示例:

It is 12


${visits}

该示例将判断 request请求提交的传入控件数组参数中,下标为“ 2”的控件内容是否为“ 12”,若为 12则显示“ It is 12”。判断结果被保存在 page范围中的“ visits ”变量中。  
6 .用于复杂判断的标签

这三个标签用于实现复杂条件判断语句,类似“ if,elseif”的条件语句。
标签没有属性,可以被认为是父标签, 将作为其子标签来使用。
标签等价于“ if”语句,它包含一个 test属性,该属性表示需要判断的条件。
标签没有属性,它等价于“ else”语句。
下面看一个复杂条件语句的示例。


not 12 not 13,it is 11


not 11 not 13,it is 12


not 11 not 12,it is 13


not 11、 12 、 13


该示例将判断 request请求提交的传入控件数组参数中,下标为“ 2”控件内容是否为“ 11”或“ 12”或“ 13”,并根据判断结果显示各自的语句,若都不是则显示“ not 11、 12、 13”。
7.用于循环的标签
为循环控制标签。它的属性和描述如表7所示:
表7   标签属性和说明
属性 描述
items 进行循环的集合(可选)
begin 开始条件(可选)
end 结束条件(可选)
step 循环的步长,默认为 1 (可选)
var 做循环的对象变量名,若存在 items 属性,则表示循环集合中对象的变量名(可选)
varStatus 显示循环状态的变量(可选)

下面看一个集合循环的示例。
<%ArrayList arrayList = new ArrayList();
arrayList.add("aa");
arrayList.add("bb");
arrayList.add("cc");
%>
<%request.getSession().setAttribute("arrayList", arrayList);%>

${arrayListI}

该示例将保存在 Session中的名为“ arrayList”的 ArrayList类型集合参数中的对象依次读取出来, items属性指向了 ArrayList类型集合参数, var属性定义了一个新的变量来接收集合中的对象。最后直接通过 EL表达式显示在页面上。下面看一个简单循环的示例。

${i}


该示例从“ 1”循环到“ 10”,并将循环中变量“ i”显示在页面上。
8 用于分隔字符的标签
标签可以根据某个分隔符分隔指定字符串,相当于 java.util.StringTokenizer类。它的属性和描述如表8所示:
表8   标签属性和说明
属性 描述
items 进行分隔的 EL 表达式或常量
delims 分隔符
begin 开始条件(可选)
end 结束条件(可选)
step 循环的步长,默认为 1 (可选)
var 做循环的对象变量名(可选)
varStatus 显示循环状态的变量(可选)
下面看一个示例。

${aValue}

需要分隔的字符串为“ aa,bb,cc,dd”,分隔符为“ ,”。 begin属性指定从第一个“ ,”开始分隔, end属性指定分隔到第三个“ ,”,并将做循环的变量名指定为“ aValue”。由于步长为“ 2”,使用 EL表达式${aValue}只能显示“ aa

9 用于包含页面的
标签允许包含另一个 JSP页面到本页面来。它的属性和描述如表9所示:
表9   标签属性和说明
属性 描述
url 需要导入页面的 URL
context Web Context 该属性用于在不同的 Context 下导入页面,当出现 context 属性时,必须以“ / ”开头,此时也需要 url 属性以“ / ”开头(可选)
charEncoding 导入页面的字符集(可选)
var 可以定义导入文本的变量名(可选)
scope 导入文本的变量名作用范围(可选)
varReader 接受文本的 java.io.Reader 类变量名(可选)
下面看一个示例。



该示例演示了三种不同的导入方法,第一种是在同一 Context下的导入,第二种是在不同的 Context下导入,第三种是导入任意一个 URL。
10. 用于得到URL地址的标签
标签用于得到一个 URL地址。它的属性和描述如表 10所示:
表10 标签属性和说明
属性 描述
value 页面的 URL 地址
context Web Context 该属性用于得到不同 Context 下的 URL 地址,当出现 context 属性时,必须以“ / ”开头,此时也需要 url 属性以“ / ”开头(可选)
charEncoding URL 的字符集(可选)

var 存储 URL 的变量名(可选)
scope 变量名作用范围(可选)
下面看一个示例:

link
得到了一个 URL后,以 EL表达式放入 标签的 href属性,达到链接的目的。
11 .用于页面重定向的标签
用于页面的重定向,该标签的作用相当于 response.setRedirect方法的工作。它包含 url和 context两个属性,属性含义和 标签相同。下面看一个示例。

该示例若出现在 JSP中,则将重定向到当前 Web Context下的“ MyHtml.html”页面,一般会与 等标签一起使用。
12. 用于包含传递参数的标签
用来为包含或重定向的页面传递参数。它的属性和描述如表11所示:
表11   标签属性和说明
属性 描述
name 传递的参数名
value 传递的参数值(可选)
下面是一个示例:



该示例将为重定向的“ MyHtml.jsp”传递指定参数“ userName=’RW’”。

1.JSTL 标签 fn 函数














其中objs[0]是所要截取的字符串;



2.struct2 标签所处理的字符串很好用,

因为返回到页面的变量最终以字符串的形式显示,故它适用所有字符串的方法:












pdProduct.pdBrand.brandName为后台返回要显示的数据

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tiger20015/archive/2008/11/27/3389882.aspx

你可能感兴趣的:(jstl,JSP,SUN,SQL,Web,工作)