<c:url> 标签用于生成一个 URL 路径的字符串,这个生成的字符串可以赋予 HTML 的 <a> 标记实现 URL 的连接,或者用这个生成的 URL 字符串实现网页转发与重定向等。在使用该标签生成 URL 时还可以搭配 <c:param> 标签动态添加URL的参数信息。
将输出产生的 URL 字符串信息,如果指定了 var 和 scope 属性,相应的 URL 信息就不再输出,而是存储在变量中以备后用。
不仅实现了语法格式一的功能,而且还可以搭配 <c:param> 标签完成带参数的复杂 URL 信息。
这两种语法格式中涉及的属性说明如表所示。
属性 | 类型 | 描述 | 引用 EL |
---|---|---|---|
url | String | 生成的URL路径信息 | 可以 |
context | String | 上下文路径,用于访问同一个服务器的其他Web工程,其值必须以“/”开头,如果指定了该属性,那么url属性值也必须一“/”开头 | 可以 |
var | String | 变量名称,将获取的资源存储在变量中 | 不可以 |
scope | String | 变量的存在范围 | 不可以 |
context | String | url属性的相对路径 | 可以 |
将 Tomcat 的 URL 路径 "http://localhost:8080" 定制到标签的 url 变量中,这个变量存在于 session 范围内。另外还结合 <c:param> 标签动态生成 3 个 URL 的参数信息,这 3 个参数信息分别是当前时间的时、分、秒。
<%@page import="java.util.*"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="time" value="<%=new Date()%>"/>
<c:url value="http://localhost:8080" var="url" scope="session">
<c:param name="Hours" value="${time.hours}"/>
<c:param name="Minutes" value="${time.minutes}"/>
<c:param name="Seconds" value="${time.seconds}"/>
</c:url>
<a href=${url}>用产生的URL路径作为超链接的参数</a>
%>
运行结果在浏览器的地址栏中可以看到传递的参数,结果如下: