学科分类
目录
Java Web

<c:url>标签

​ 在访问一个JSP页面时,通常会在URL中传递一些参数信息,为了方便完成这种功能,Core标签库中提供了一个<c:url>标签,该标签可以在JSP页面中构造一个新的URL地址,实现URL的重写。<c:url>标签有两语法格式,具体如下:

​ 语法1:没有标签实体的情况

<c:url value="value" [context="context"] [var="varName"]

[scope="{page|request|session|appliction}"]>

​ 语法2:有标签实体的情况,在标签体中指定构造URL参数

<c:url value="value" [context="context"] [var="varName"]

[scope="{page|request|session|appliction}"]>

  <c:param>标签

</c:url>

在上述语法格式中,可以看到<c:url>标签中有多个属性,接下来将针对这些属性进行讲解,具体如下:

● value属性用于指定构造的URL;

● context属性用于指定导入同一个服务器下其它Web应用的名称;

● var属性用于指定将构造的URL地址保存到域对象的属性名称;

● scope属性用于指定将构造好的URL保存到域对象中。

为了使初学者更好的学习<c:url>标签,接下来通过一个具体的案例来演示如何使用<c:url>标签,如例1所示。

例1 c_url.jsp

 1  <%@ page language="java" contentType="text/html; charset=utf-8"

 2  pageEncoding="utf-8" import="java.util.*"%>

 3  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 4  <html>

 5  <head></head>

 6  <body>

 7    使用绝对路径构造URL:<br>

 8    <c:url var="myURL" 

 9    value="http://localhost:8080/chapter08/register.jsp">

 10     <c:param name="username" value="张三" />

 11     <c:param name="country" value="中国" />

 12   </c:url>

 13   <a href="${myURL}">register.jsp</a><br>

 14   使用相对路径构造URL:<br>

 15   <c:url var="myURL" 

 16    value="register.jsp?username=Tom&country=France" />

 17   <a href="${ myURL}">register.jsp</a>

 18 </body>

 19 </html>

打开IE浏览器,在地址栏中输入http://localhost:8080/chapter08/c_url.jsp访问c_url.jsp页面,此时,浏览器窗口中显示的结果如图1所示。

图1 c_url.jsp

从图1可以看出,在浏览器窗口中已经显示了c_url.jsp页面的内容,此时查看该页面的源文件,可以看到如下信息:

<html>

<head></head>

<body>

  使用绝对路径构造URL:<br>

    <a href="http://localhost:8080/chapter08/register.jsp?

​    username=%e5%bc%a0%e4%b8%89&country=%e4%b8%ad%e5%9b%bd">

register.jsp

​    </a><br>

  使用相对路径构造URL:<br>

    <a href="register.jsp?username=Tom&country=France">register.jsp</a>

</body>

</html>

在上述源代码中,可以看到在c_url.jsp页面中构造的URL地址实际上会变成一个超连接,并且使用<param>标签构造的参数会进行URL编码,将参数张三转换为“%e5%bc%a0%e4%b8%89”,中国转换为“%e4%b8%ad%e5%9b%bd”,这样就构造了一个新的URL地址,完成了URL的重写功能。

点击此处
隐藏目录