【发布时间】:2011-05-15 09:53:44
【问题描述】:
我想使用 JSP 或 JSTL 获取当前页面名称(类似于“myPage”)。我怎样才能做到这一点?
【问题讨论】:
我想使用 JSP 或 JSTL 获取当前页面名称(类似于“myPage”)。我怎样才能做到这一点?
【问题讨论】:
您可以通过HttpServletRequest#getServletPath()获取。
${pageContext.request.servletPath}
您可以在必要时使用JSTL functions 标签库来提取扩展。
【讨论】:
/WEB-INF 文件夹中的 JSP。使用${requestScope['javax.servlet.forward.servlet_path']} 来获取 URL 的 servlet 路径,因为它显示在浏览器地址栏中。
获取页面:
<% String pageName = com.kireego.utils.Utils.extractPageNameFromURLString(request.getRequestURI()); %>
还有这个帮助代码:
public static String extractPageNameFromURLString(String urlString){
if (urlString==null) return null;
int lastSlash = urlString.lastIndexOf("/");
//if (lastSlash==-1) lastSlash = 0;
String pageAndExtensions = urlString.substring(lastSlash+1);
int lastQuestion = pageAndExtensions.lastIndexOf("?");
if (lastQuestion==-1) lastQuestion = pageAndExtensions.length();
String result = pageAndExtensions.substring(0,lastQuestion);
return result;
}
【讨论】:
此行将为您提供正确的 JSP 名称,当页面包含多个页面时它也可以正常工作
<%= this.getClass().getSimpleName().replaceAll("_5F", "").replaceFirst("_", "") %>.jsp<BR>
【讨论】:
也许你可以用 javascript 的方式来理解它,比如:
var url = window.location.href;
然后使用字符串方法获取当前页面名称。
【讨论】: