1

我想从 JSP 文件中获取我所在页面的当前路径。在这种情况下,JSP 文件是作为 apache tile 框架的一部分的 Tile。

我点击的 URL 是http://localhost:8080/dashboard/projects'dashboard' 是 servlet 和 'projects' 映射到 spring 控制器的地方,如下所示:

@RequestMapping( { "/projects" } )
public String showAllProjectsPage( Map< String, Object > model ) {
    return "projects";
}

其中“项目”是指在我的 views.xml 中定义的磁贴,如下所示:

<tiles-definitions>
  <definition name="template" template="/WEB-INF/views/template.jsp">
    <put-attribute name="header" value="/WEB-INF/views/shared/header.jsp" />
    <put-attribute name="sidebar" value="/WEB-INF/views/shared/sidebar.jsp" />
    <put-attribute name="footer" value="/WEB-INF/views/shared/footer.jsp" />
    <put-attribute name="head" value="/WEB-INF/views/shared/head.jsp" />
  </definition>
  <definition name="home" extends="template">
    <put-attribute name="content" value="/WEB-INF/views/home/home.jsp" />
  </definition>
  <definition name="developer" extends="template">
    <put-attribute name="content" value="/WEB-INF/views/developers/developer.jsp"></put-attribute>
  </definition>
  <definition name="developers" extends="template">
    <put-attribute name="content" value="/WEB-INF/views/developers/developers.jsp"></put-attribute>
  </definition>
  <definition name="project" extends="template">
    <put-attribute name="content" value="/WEB-INF/views/projects/project.jsp"></put-attribute>
  </definition>
  <definition name="projects" extends="template">
    <put-attribute name="content" value="/WEB-INF/views/projects/projects.jsp"></put-attribute>
  </definition>
</tiles-definitions>

我尝试了以下方法,但它们对我不起作用:

<% out.println(request.getPathInfo(  )); %>

输出:“ null

<% out.println(request.getPathTranslated(  )); %>

输出:“ null

<% out.println(request.getRequestURI(  )); %>

输出:“ /dashboard/WEB-INF/views/template.jsp

<% out.println(request.getRequestURL(  )); %>

输出:“ http://localhost:8080/dashboard/WEB-INF/views/template.jsp

<% out.println(request.getServletPath(  )); %>

输出:“ /WEB-INF/views/template.jsp

我感兴趣的路径部分是“项目”,我认为该方法request.getPathTranslated()可以为我做到这一点,但没有骰子。我只能取回'null'或瓷砖模板的路径。

4

1 回答 1

2

我不确定getPathTranslated()应该做什么,但如果它不起作用,你可以添加路径model作为解决方法吗?

@RequestMapping("/projects")
public String showAllProjectsPage( Map< String, Object > model ) {
    model.put("tileDef", "projects");
    return "projects";
}

然后在您的 JSP 中像这样访问它:

<span id="tileDef">${tileDef}</span>
于 2013-09-06T20:43:30.747 回答