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>
网页显示:
八、<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>
输出:
forTokens:
<body> <c:forTokens items="www.baidu.com" delims="." var="name"> <c:out value="${name}"/><p> </c:forTokens> </body>
输出:
九、<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}"/>">使用 <c:param> 为指定URL发送两个参数。</a> </body>
输出显示:
查看该页面源代码可以发现原来代码中的<a href="<c:out value="${myURL}"/>">变成了<a href="main.jsp?name=baidu&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>
运行显示:打开该页面,直接跳转到百度首页