我正在尝试在我的webproject中创建一个链接,在链接文本中显示链接的url.
例如,如果我正在处理我的localhost的Example项目,我想要一个example.jsp页面的链接看起来像 http://localhost:8081/Example/example.jsp
它将链接到/example.jsp页面的位置.
我需要能够动态地执行此操作.
您可以按如下方式使用JSTL来获取站点的基本URL:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="req" value="${pageContext.request}" />
<c:set var="url">${req.requestURL}</c:set>
<c:set var="base" value="${fn:substring(url, 0, fn:length(url) - fn:length(req.requestURI))}${req.contextPath}/" />
...
Run Code Online (Sandbox Code Playgroud)
(req在上面的例子中只是当前实例的简写HttpServletRequest,该<c:set var="url">行基本上将StringBuffer返回的HttpServletRequest#getRequestURL()to 转换为String可以在字符串函数中使用)
然后,您可以创建如下链接:
<a href="${base}example.jsp">${base}example.jsp</a>
Run Code Online (Sandbox Code Playgroud)
或者,当使用HTML <base>标记时,它会使文档中的所有相对链接相对于它:
<head>
<base href="${base}" />
</head>
<body>
<a href="example.jsp">${base}example.jsp</a>
</body>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4692 次 |
| 最近记录: |