Java jstl&x27的目的是什么;SC:url标签?
有一个简单的Java jstl&x27的目的是什么;SC:url标签?,java,jstl,Java,Jstl,有一个简单的c:url标记示例,如下所示: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <title><c:url> Tag Example</title> </head> <body> <a href="<c:url value="/jsp/index.htm"/>"&
c:url
标记示例,如下所示:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:url> Tag Example</title>
</head>
<body>
<a href="<c:url value="/jsp/index.htm"/>">TEST</a>
</body>
</html>
<a href="/jsp/index.htm">TEST</a>
<a href="<c:url value="/test.html" var="testvar" />">TEST</a> // testvar is where you put the url formatted by c:url
<c:out value="${testvar}"/> // you print what is the formatted url
标签示例
当使用Chrome的开发者工具查看相应的渲染时,其渲染如下:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:url> Tag Example</title>
</head>
<body>
<a href="<c:url value="/jsp/index.htm"/>">TEST</a>
</body>
</html>
<a href="/jsp/index.htm">TEST</a>
<a href="<c:url value="/test.html" var="testvar" />">TEST</a> // testvar is where you put the url formatted by c:url
<c:out value="${testvar}"/> // you print what is the formatted url
因此,
c:url
标记似乎是多余的,但我肯定我遗漏了什么?正如教程所说,它是为了格式化您输入的url,并且可以存储在变量中
例如,您有:
<a href="<c:url value="/test.html"/>">TEST</a>
答案将是项目的上下文文件夹,加上您输入的URL
context/test.html将作为输出
我认为它的目的是将
上下文
(当前应用程序)已经提供给URL
,您只需要添加剩余的URL
部分。以下是我的培训应用程序中的一个简短片段,我在其中使用了
标记:
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Action</th>
</tr>
<c:forEach var="student" items="${student_list}">
<c:url var="loadStudentLink" value="StudentControllerServlet">
<c:param name="command" value="load"/>
<c:param name="id" value="${student.id}"/>
</c:url>
<tr>
<td> ${student.firstName} </td>
<td> ${student.lastName} </td>
<td> ${student.email} </td>
<td>
<a href="${loadStudentLink}">Update</a>
</td>
</tr>
</c:forEach>
</table>
名字
姓
电子邮件
行动
${student.firstName}
${student.lastName}
${student.email}
当然,在这种情况下,我可以使用下面的链接,它将是相同的:
<a href="StudentControllerServlet?command=load&id=${student.id}">Update</a>
简而言之,
创建一个普通链接,您可以将其存储在变量中并定义其范围。
使用
标记,您可以设置链接的参数。
此外,有人可能会说使用JSTL看起来更整洁
另外,正如前面所说,
已经有了应用程序的上下文路径。
例如,您可以这样做
而不是那个
除了其他答案中已经提到的用途外,c:url
标记的另一个用途是重写从JSP页面返回的url。例如,用于会话跟踪。如果用户代理不支持(或已禁用)Cookie,jsessionid将附加到URL
只有禁用Cookie时,标签才会在URL中包含会话ID;否则,它将返回未更改的URL
见: