• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > Jsp编程 >

JSP标准标记库基础知识学习(8)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-05-10点击:

实际上,对应于 JSTL core 库的 taglib 伪指令有两种,因为在 JSTL 1.0 中,EL 是可选的。所有四个 JSTL 1.0 定制标记库都有使用 JSP 表达式(而不是 EL)指定动态属性值的备用版本。因为这些备用库依赖于 JSP 的更传统的请求时属性值,所以它们被称为 RT 库,而那些使用表达式语言的则被称为 EL 库。开发人员用不同的 taglib 伪指令来区分每个库的这两个版本。清单 8 显示了使用 core 库的 RT 版本的伪指令。但是,由于现在我们讨论的重点是 EL,所以首先需要这些伪指令。

清单 8. 用于 JSTL core 库 RT 版本的 taglib 伪指令
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt" %>;

变量标记
我们首先要考虑的 JSTL 定制标记是 <c:set>; 操作。正如已经说明的,限制了作用域的变量在 JSTL 中起关键作用,<c:set>; 操作提供基于标记的机制来创建和设置限制了作用域的变量。清单 9

中显示了该操作的语法,其中 var 属性指定了限制了作用域的变量的名称,scope 属性表明了该变量驻留在哪个作用域中,value 属性指定了分配给该变量的值。如果指定变量已经存在,则简单地将所指明的值赋给它。如果不存在,则创建新的限制了作用域的变量,并用该值初始化这个变量。

清单 9. <c:set>; 操作的语法
<c:set var="name" scope="scope" value="expression"/>;

scope 属性是可选的,其缺省值是 page。

清单 10 中显示了 <c:set>; 的两个示例。在第一个示例中,将会话作用域变量设置成 String 值。

在第二个示例中,用表达式来设置数值:将页面作用域内名为 square 的变量赋值为名为 x 的请求参数的值的平方。

清单 10. <c:set>; 操作示例
<c:set var="timezone" scope="session" value="CST"/>;
<c:set var="square" value="${param[’x’] * param[’x’]}"/>;
您还可以将限制了作用域的变量的值指定为 <c:set>; 操作的主体内容,而不是使用属性。使用这种

方法,您可以重新编写清单 10 中的第一个示例,如清单 11 所示。此外,正如我们马上可以看到的,<c:set>; 标记的主体内容本身也可以使用定制标记。<c:set>; 主体内生成的所有内容都将作为一个 String 值赋给指定变量。

清单 11. 通过主体内容指定 <c:set>; 操作的值
<c:set var="timezone" scope="session">;CST</c:set>; 

标签: jsp基础知识

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ