jsp引用JSTL核心标签库

一、引用JSTL

1、  JSTL的引入可以让JSP代码中<%%>等代码消失掉,再结合EL表达式,会更加方便以及美观。

2、  各套框架(还没有学习,比如struts,SpringMVC等)都有自己的标签库,这时JSTL可以作为公共、通用的,横行于各框架中。

    操作:

      第一步:下载JSTL包

        下载地址:http://tomcat.apache.org/taglibs/

第二步,新建一个jsp页面

 

  JSTl基本应用:

  1.核心标签库:包括基本的语言功能,变量操作,流程控制等等。

  2.国际化和格式化标签库:进行国际化操作和格式化操作,例如格式化时间等等。

  3.SQL标签库:主要用于对关系型数据库的存储操作。

  4.XML标签库:主要用于对xml格式数据的操作。

  5.函数标签库:主要定义对字符串操作的函数库,在EL表达式中运行。

  在上述五种标签库中,常用的有核心标签库、格式化标签库和函数标签库,在下面的内容中我们将一 一给大家讲解。

二、核心标签库

  1.多用途核心标签

    1.1用于显示的<c:out>

      <c:out>标签是一个最常用的标签,用于在JSP中显示数据。

  NewFile.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSTL Hello World!</title>
</head>
<body>
<c:out value="Hello World"></c:out>
</body>
</html>

 

运行结果:

  1.2用于赋值的<c:set>标签

    <c:set>标签用于为变量或Javabean中的变量属性赋值的工作。

  NewFile.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set value="this is andy" var="oneString"></c:set>
${oneString} //该示例将名为"oneString"的变量赋值为"this is andy",其中作用范围为page。 </body> </html>

 

 运行结果:

  1.3用于删除的<C:remove>标签

      <C:remove>标签用于删除存在于scope中的变量。

  NewFile.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:remove var="sampleValue" scope="session"></c:remove>
${sessionScope.sampleValue}
//该示例将存在于Session中名为"sampleValue"的变量删除。下一句EL表达式显示该变量时,该变量已经不存在。
</body>
</html>

  1.4异常捕获的<C:catch>标签

    <C:catch>标签允许在jsp也面中捕获异常。它包含一个var属性,是一个描述异常的变量。

    NewFile.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:catch>${param.sampleSingleValue[9]==3}</c:catch>
${err}
//当"${param.sampleSingValue[9]==3}"表达式有异常时,可以从var属性"err"得到异常的内容,通常判断"err"是否为null来决定错误信息的提示。
</body>
</html>

 

 运行结果:

 

 2.条件控制标签

   2.1用于判断的<c:if>标签

    <c:if>标签用于简单的条件语句。

下面看一个示例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:if test="${paramValue.sampleValue[2]==12}" var="visits" >
    It is 12
</c:if><br>
${visits}
//判断request请求提交的传入控件数组参数中,下标为“2”的控件内容是否为“12”,若为12则
//显示“It is 12”。判断结果保存在page范围中的“visits”变量中。
</body> </html>

 

  2.2复杂的判断<c:choose>、<c:when>、<c:otherwise>标签  

    这三个标签实现复杂条件判断语句,类似“if,elseif”的条件语句。

    1.<c:choose>标签没有属性,可以被认为是父标签,<c:when>、<c:otherwise> 

      将作为其子标签来使用。

    2.<c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。

    3.<c:otherwise>标签没有属性,它等价于“else”语句。

 

下面看一个复杂条件语句的示例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:choose>
<c:when test="${paramValues.sampleValue[2]==11}">
    not 12 not 13,it is 11
</c:when>
<c:when test="${paramValues.sampleValue[2]==12}">
    not 11 not 13,it is 12
</c:when>
<c:when test="${paramValues.sampleValue[2]==13}">
   not 11 not 12,it is 13
</c:when>
<c:otherwise>
    not 11、12、13
</c:otherwise>
</c:choose>
//判断request请求提交的传入控件数组参数中,下标为“2”控件内容是否为“11”或“12”或“13”,并根据判断结果显示各自的语句,若都不是则显示“not 11、12、13” </body> </html>

 

运行结果:

   2.3<c:import>检索一个绝对或相对 URL,然后将其内容暴露给页面

      <c:import>标签提供了所有<jsp:include>行为标签所具有的功能,同时也允许包含绝对URL。

      举例来说,使用<c:import>标签可以包含一个FTP服务器中不同的网页内容。

    语法格式:

<c:import
   url="<string>"
   var="<string>"
   scope="<string>"
   varRender="<string>"
   context="<string>"
   charEncoding="<string>"/>

 

    <c:import>的属性:

    

    下面来看示例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:import 标签实例</title>
</head>
<body>
<c:import var="data" url="http://www.baidu.com"/>
<c:out value="${data}"/>
</body>
</html>

 

 

3.循环控制标签

  3.1循环<c:forEach>标签

      基础迭代标签,接受多种集合类型为循环控制标签。

<c:forEach>标签有如下属性:

  

  <c:forEach>语法格式:

<c:forEach
    items="<object>"
    begin="<int>"
    end="<int>"
    step="<int>"
    var="<string>"
    varStatus="<string>">

    ...

 

   <c:forEach>示例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:forEach 标签实例</title>
</head>
<body>
<c:forEach var="i" begin="1" end="5">
   Item <c:out value="${i}"/><p>
</c:forEach>
</body>
</html>

 

  运行结果: 
Item 1
Item 2
Item 3
Item 4
Item 5

 

   3.2分隔字符的<c:forTokens>标签

     <c:forTokens>标签可以根据某个分隔符指定字符串,相当于Java.util.StirngTokenizer类。

  <c:forTokens>标签与<c:forEach>标签有相似的属性,不过<c:forTokens>还有另一个属性:

属性 描述 是否必要 默认值
delims 分隔符

 

<c:forTokens>语法格式:

<c:forTokens
    items="<string>"
    delims="<string>"
    begin="<int>"
    end="<int>"
    step="<int>"
    var="<string>"
    varStatus="<string>">

<c:forTokens>示例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:forTokens 标签实例</title>
</head>
<body>
<c:forTokens items="google,runoob,taobao" delims="," var="name">
   <c:out value="${name}"/><p>
</c:forTokens>
</body>
</html>

 

运行结果:

google
runoob
taobao

 

 

未完待续......

posted @ 2017-05-22 20:43  南城琉璃  阅读(29634)  评论(1编辑  收藏  举报