首页 > 编程笔记 > Java笔记

JSP JSTL <c:url>标签:生成URL地址标签

<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 信息。

这两种语法格式中涉及的属性说明如表所示。

<c: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

所有教程

优秀文章