Servlet&JSP 第七章 使用JSTL

  • Post author:
  • Post category:其他




一、JSTL简介




1、JSTL简介




不仅提供了条件判断的逻辑标签,还提供了对应JSP标准标签的扩展标签以及更多的功能标签。



(1)JSTL提供的标签库(五大类):



核心标签库:提供条件判断、属性访问、URL及错误处理等标签。



I18N兼容格式标签库:提供数字、日期等的格式化功能,以及区域、信息、编码处理等国际化功能的标签。



SRL标签库:提供基本的数据库查询、更新、设置数据源等功能的标签。



XML标签库:提供XML解析、流程控制、转换等功能的标签。



函数标签库:提供常用字串处理的自定义EL函数标签库。



(2)要使用JSTL标签库,必须在JSP网页上使用taglib指示元素定义前置名称与uri参考。

例1、要是用核心标签库,可以进行如下定义:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>



2、核心标签库




(1)流程处理标签



当JSP页面必须根据某个条件来安排网页输出时,则可以使用流程标签。例如。想要依用户输入的名称、密码请求参数,来决定是否显示这个画面,或是想要用表格输出是个数据等。



<c:if>标签:可根据某个表达式的结果,决定是否显示Body的内容。

<c:if>标签的test属性中可以放置EL表达式,如果表达式的结果为true,则会将

<c:if>Body输出。

<c:if>标签没有对应的

<c:else>标签。如果想要在某条件式成立时显示某些内容,不成立时就显示另一内容,则可以使用<c:choose>、<c:when>及<c:otherwise>标签。













<c:when>及<c:otherwise>标签必须放在<c:choose>标签中。当

<c:when>及<c:otherwise>标签的test运算结果为true时,会输出<c:when>的Body内容,而不理会<c:otherwise>内容。

<c:choose>标签中可以有多个<c:when>标签,此时会从上往下进行测试,如果有个<c:when>标签的test运算结果为true就输出其Body内容,之后的

<c:when>就不会做测试,如果所有的

<c:when>测试都不成立,就回输出<c:otherwise>的内容。

























<c:forEach>标签:

<c:forEach>标签的items属性可以是数组、Collection、Iterator、Enumeration、Map与字符串,每次会依序从items指定的对象中取出一个元素,并指定给var属性设置的变量,之后就可以在

<c:forEach>标签Body中使用var属性所设置的变量来取得该元素。





























如果items指定的是Map,则设置给var的对象会是Map.Entry,这个对象有getKey()与getValue()方法,可以取得键与值。

















版权声明:本文为XuDTone原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。