JSP标准标签库(JSTL)之核心标签(下)

时间:2023-03-09 16:37:33
JSP标准标签库(JSTL)之核心标签(下)

前面记录了核心标签的前几种,现在来接着记录。

七、<c:import>标签

   使用<c:import>标签可以包含一个FTP服务器中不同的网页内容。语法格式:

<c:import
url="待导入资源的URL,可以是相对路径和绝对路径,并且可以导入其他主机资源"
var="用于存储所引入的文本的变量"
scope="var属性的作用域"
varRender="可选的用于提供java.io.Reader对象的变量"
context="当使用相对路径访问外部context资源时,context指定了这个资源的名字"
charEncoding="所引入的数据的字符编码集"/>

举例:

<body>
<c:import var="baidu" url="http://www.baidu.com" charEncoding="utf-8"
scope="request"></c:import>
百度首页的源代码是:
<c:out value="${baidu}" escapeXml="true"></c:out>
<c:out value="${baidu}" escapeXml="false"></c:out>
</body>

网页显示:

JSP标准标签库(JSTL)之核心标签(下)

八、<c:forEach>、<c:forTokens>标签

  <c:forEach>标签迭代一个集合中的对象。<c:forTokens>标签通过指定分隔符将字符串分隔为一个数组然后迭代它们。

语法格式:

  forEach:

<c:forEach
items="要被循环的信息"
begin="开始的元素(0=第一个元素,1=第二个元素)"
end="最后一个元素(0=第一个元素,1=第二个元素)"
step="每一次迭代的步长"
var="代表当前条目的变量名称"
varStatus="代表循环状态的变量名称">
</c:forEach>

  forTokens:

<c:forTokens
items="要被循环的信息"
delims="分隔符"
begin="开始的元素"
end="最后一个元素"
step="每一次迭代的步长"
var="代表当前条目的变量名称"
varStatus="代表循环状态的变量名称">
</c:forTokens>

举例:

  forEach:

  <body>
<%
String[] data = {"刘备","关羽","张飞","赵云","黄忠"};
pageContext.setAttribute("info",data);
%>
<c:forEach items="${pageScope.info }" var="item" >
${item }、
</c:forEach><br>
<!-- 起始 结束 步长 -->
<c:forEach items="${pageScope.info }" var="item" begin="0" end="2" step="1">
${item }、
</c:forEach>
</body>

  输出:

JSP标准标签库(JSTL)之核心标签(下)

  forTokens:

<body>
<c:forTokens items="www.baidu.com" delims="." var="name">
<c:out value="${name}"/><p>
</c:forTokens>
</body>

  输出:

    JSP标准标签库(JSTL)之核心标签(下)

九、<c:url>标签

  <c:url>标签将URL格式化为一个字符串,然后存储在一个变量中。这个标签在需要的时候会自动重写URL。var属性用于存储格式化后的URL。<c:url>标签只是用于调用response.encodeURL()方法的一种可选的方法。它真正的优势在于提供了合适的URL编码,包括<c:param>中指定的参数。

语法格式:

<c:url
var="代表URL的变量名"
scope="var属性的作用域"
value="基础URL"
context="本地网络应用程序的名称"/>

举例:

<body>
<a href="<c:url
value="http://www.baidu.com"/>">URL</a>
</body>

打开页面显示URL ,点击URL可以跳转到百度。

十、<c:param>标签

  <c:param>标签用于在<c:url>标签中指定参数,而且与URL编码相关。 在<c:param>标签内,name属性表明参数的名称,value属性表明参数的值。

语法格式:

<c:param name="URL中要设置的参数的名称" value="参数的值"/>

举例:

如果想要向<c:import>标签中传递参数,需要先使用<c:url>标签来创建URL:

<body>
<c:url var="myURL" value="main.jsp">
<c:param name="name" value="baidu"/>
<c:param name="url" value="www.baidu.com"/>
</c:url>
<a href="<c:out value="${myURL}"/>">使用 &lt;c:param&gt; 为指定URL发送两个参数。</a>
</body>

输出显示:

    JSP标准标签库(JSTL)之核心标签(下)

查看该页面源代码可以发现原来代码中的<a href="<c:out value="${myURL}"/>">变成了<a href="main.jsp?name=baidu&amp;url=www.baidu.com">,即向main.jsp页面传了两个参数。

十一、<c:redirect>标签

  <c:redirect>标签通过自动重写URL来将浏览器重定向至一个新的URL,它提供内容相关的URL,并且支持c:param标签。

语法格式:

<c:redirect url="目标URL" context="紧接着一个本地网络应用程序的名称"/>

举例:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>c:redirect 标签举例</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<c:redirect url="http://www.baidu.com"></c:redirect>
</body>
</html>

运行显示:打开该页面,直接跳转到百度首页