当前位置: 网学 > 编程文档 > JSP > 正文

Java Server Pages (JSP) 标准标记库 (JSTL)

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式

首先,尽管我应该更多地谈论JSTL标记库的两种风格,我上面提到的每个JSTL标记库以两个版本出现:一个支持使用EL的表达式;另一个支持标准JSP表达式。当你引入任何标记库到一个JSP页时,你要定义一个前缀,该前缀指定了与库中标记相对应的命名空间。

  四种标准标记库,和他们的JSTL规范定义的前缀常规,列表如下。记住:你可以定义自己的前缀,但是这绝对没有什么好处。

四种标准标记库

  为了使用页中的核心标记库( 实际上,你使你的页对标记库的命名空间可见),在你的页首包含下列例子中的指令: <%@ taglib prefix="c" uri=http://java.sun.com/jstl/core %>

  为了使用该标记库的标记,用你在你的包含语句中设计好的前缀,在你的页中给每个标记加上前缀:

<c:out value="${anExpression}"/>

  核心数据库

  让我们更详细的测试核心数据库,先看看他最通用的功能。

  显示/设定值和异常处理

  核心库的最基本的标记是c:out标记,它在页中显示一个EL表达式的值。一个使用c:out的表达式通常是这样:

We have <c:out value="${applicationScope.product.inventoryCount}"
escapeXml="true" default="0"  /> of those items in stock.

  上例中,value属性是我们送到页输出的表达式。我也说明了选项escapeXml的属性和默认属性。escapeXml的属性指定了XML字符(<、>、 &、 和 .)是否应该转化为相应的字符实体代码(这样他们可以让这些字符出现在一个HTML页中);默认属性用于EL不能估算出数值或者数值计算出来为空的情况。

  注意:当EL支持完全贯穿整个JSP2.0的时候,你不需要使用c:out动作;你可以仅嵌套JSP表达式直接在页中。

  另一个普遍使用的核心动作是c:set,它在页中设定一个变量。你可以用两种方法使用c:set动作,第一种方法设定在var属性中定义的变量到在value属性中定义的值上,方法如下:

<c:set var="customerID" value="$param:customerNumber" scope="session" />

  上述的选择项scope属性指定了我们要在会话期范围内设定变量customerID;如果范围没有制定,范围默认为页。

  c:set另一个强大的用途就是将c:set标记的体的内容赋给一个指定的变量:

<c:set var="cellContents">
<td>
<c:out value="${myCell}"/>
</td>
</c:set>

  在上例中,c:set动作定义了名为cellContents(在页的范围内)的变量,该变量拥有在标记的体中定义的内容。在这种情况下,体定义了一个HTML表格单元格元素,计算体中的c:out动作,并且该计算的结果包括在体中的字符串直接量值。

  就像你预想的那样,JSTL进行异常处理有点早。在典型的JSP页中,你有两种异常处理的方法:试图/捕捉直接嵌入到页中的小脚本代码中的块;或者用一个JSP errorPage指令。JSP errorPage指令提供一个良好的捕捉所有异常的方法来处理页中任何可能的异常。JSTL用一个c:catch动作提供一个好的可选择的方式。这个c:catch动作提供一个更细粒度的有效方法来处理异常。而且没有嵌入Java代码到页中。一个c:catch动作是这样的:

<c:catch>
 <!--. . . some set of nested JSTL tags below which would be hit on an exception-->
</c:catch>

  c:catch动作有一个可选的属性,即一个指向抛出异常的变量。

  你可能不怎么愿意使用c:remove标记。这个标记有用于变量名和范围的属性,并且可从指定的范围内删除指定的变量。

流程控制
  让我们转为讨论JSTL的流程控制和条件标记。如果你已经用任何一种语言使用了条件和流程控制语句,理论上这里没什么新鲜的东西。

  

  • 下一篇资讯: Tomcat的SSL网站发布
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号