簡體   English   中英

使用Apache Tiles 3和Spring MVC 3.2.3從JSP獲取路徑

[英]Get path from a JSP with Apache Tiles 3 and Spring MVC 3.2.3

我想從JSP文件中獲取我所在頁面的當前路徑。 在這種情況下,JSP文件是Tile,是apache 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”,否則將返回磁貼模板的路徑。

我不確定getPathTranslated()應該做什么,但是如果不起作用,可以將model的路徑添加為解決方法嗎?

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

然后在您的JSP中像這樣訪問它:

<span id="tileDef">${tileDef}</span>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM