<c:url> 标签用于生成一个 URL 路径的字符串,这个生成的字符串可以赋予 HTML 的 <a> 标记实现 URL 的连接,或者用这个生成的 URL 字符串实现网页转发与重定向等。在使用该标签生成 URL 时还可以搭配 <c:param> 标签动态添加URL的参数信息。
语法:
<c:url value="url"[var="name"][scope="page|request|session|application"][context="context"]/>
语法格式一:
将输出产生的 URL 字符串信息,如果指定了 var 和 scope 属性,相应的 URL 信息就不再输出,而是存储在变量中以备后用。
<c:url value="url" var="name"][scope="page|request|session|application"][context="context"]>
<c:param>
</c: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> %>
运行结果在浏览器的地址栏中可以看到传递的参数,结果如下:
http://localhost:8080/?Hours=168&Minutes=21&Seconds=57
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/21288.html