我想從JSP文件中獲取當前頁面的路徑。在這種情況下,JSP文件是一個Tile,作爲apache tile框架的一部分。使用Apache Tiles 3和Spring MVC從JSP獲取路徑3.2.3
我打的網址是http://localhost:8080/dashboard/projects
其中「儀表盤」是servlet和「項目」映射到彈簧控制,像這樣:
@RequestMapping({ "/projects" })
public String showAllProjectsPage(Map< String, Object > model) {
return "projects";
}
這裏的「項目」指的是在我的觀點中定義的瓷磚.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()
會爲我做的路徑的一部分,但沒有骰子。我只能返回'空'或其他瓷磚模板的路徑。
這是我落得這樣做,但我還是喜歡一個人到了一些關於爲何getPathTranslated()沒有按幫腔沒有工作。 javadoc說:「返回任何額外的路徑信息在servlet名稱後面,但在查詢字符串」之前,這正是我正在尋找的。 – CMikeB1