[英]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.