2013-08-20 105 views
1

我想從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()會爲我做的路徑的一部分,但沒有骰子。我只能返回'空'或其他瓷磚模板的路徑。

回答

2

我不確定getPathTranslated()應該做什麼,但如果它不起作用,可以將路徑添加到model作爲解決方法?

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

然後在你的JSP訪問它像這樣:

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

這是我落得這樣做,但我還是喜歡一個人到了一些關於爲何getPathTranslated()沒有按幫腔沒有工作。 javadoc說:「返回任何額外的路徑信息在servlet名稱後面,但在查詢字符串」之前,這正是我正在尋找的。 – CMikeB1

相關問題