JSTL c:url 核心标签

<c:url> JSTL 标签用于网址格式,或者您可以说网址编码。这主要用于需要根据用户输入或基于变量值打开 JSP 页面时。它基本上将相对 url 转换为应用上下文的 url。现在可能听起来很混乱,但是按照本教程中给出的示例,您将能够很容易地掌握它。

<c:url> 语法

基本语法如下所示 – 属性value<c:url>标签的必需属性。

<c:url value="/file1.jsp" />

此标签还有三个可选属性,如下所示:

  • var:用于存储格式化 url(生成 url)的变量名。
  • context:用于指定应用(或项目名称)。不明白吗?我们将在稍后的示例的帮助下看到这一点。
  • scope:将存储var属性的范围。它可以是请求,页面,应用或会话。

让我们通过一个例子来理解这个标签和属性的使用:

<c:url>的值属性

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL c:url Tag Example</title>
</head>
<body>
<c:url value="/file1.jsp"/>
</body>
</html>

输出:上面的代码输出如下。注意:BeginnersBook是我的项目名称(换句话说是 JSP 应用名称)。

/BeginnersBook/file1.jsp

JSTL c:url 核心标签

<c:url>标签的var属性

让我们像这样修改示例 1。我们在<c:url>中添加了一个变量myurl。现在<c:url>的结果将存储在变量myurl中。

<c:url var="myurl" value="/file1.jsp"/>
${myurl}

输出:

/BeginnersBook/file1.jsp

上下文属性

默认情况下,此标签将当前应用作为上下文,但是我们可以在c url中明确指定上下文,如下例所示:

注意:上下文的值应始终以/开头,否则您将收到以下异常消息:

HTTP 状态 500 - javax.servlet.ServletException:javax.servlet.jsp.JspTagException:在 URL 标签中,当指定“context”属性时,“context”和“url”的值必须以“/”开头。
<c:url var="myurl" value="/file1.jsp" context="/MyJSPProject"/>
${myurl}

输出:

/MyJSPProject/file1.jsp

JSTL c:url 核心标签

scope属性

<c:url var="myurl" value="/file1.jsp" context="/MyJSPProject" scope="session"/>
${requestScope.myurl}

输出:输出屏幕将为空白,因为我们已将myurl存储在会话范围内,我们正在尝试从requestScope获取后打印该值。

正确用法:这是应该编码的方式。这里我们存储在会话中并从sessionScope中获取,因此它可以正常工作。

<c:url var="myurl" value="/file1.jsp" context="/MyJSPProject" scope="session"/>
${sessionScope.myurl}

输出:

/MyJSPProject/file1.jsp
赞(1)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址