2013-05-31 64 views
4

我google了很多,得到一個答案:如何在spring mvc項目中使用jstl來獲取requestURI?

<c:out value="${pageContext.request.requestURI}" /> 

,但我得到/myapp/WEB-INF/views/index.jsp

我想/myapp/index

我怎麼能這樣做?

我的項目是使用spring mvc。 我在春天mvc.xml配置:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/views/"/> 
     <property name="suffix" value=".jsp"/> 
</bean> 

在我的/ WEB-INF /視圖/,有一個index.jsp的

我的Controler:

@RequestMapping("/index") 
public String welcome() { 
    return "index"; 
} 

當我查看localhost:8088/myapp/index , 表明。

+0

可能的重複[如何在JSP中獲取正確的當前URL在Web應用程序中](http://stackoverflow.com/questions/9711896/how-to-get-correct-current-url-in-jsp-in- spring-webapp) – acdcjunior

回答

12

嘗試使用${requestScope['javax.servlet.forward.servlet_path']}

javax.servlet.forward.*常量檢索基於URI傳遞給getRequestDispatcher()信息(DispatcherServlet的設置該屬性,同時處理Spring Web MVC框架的情況下要求)。但它獨立於框架和Web容器。

由於文件說FORWARD_SERVLET_PATH是:

在其下提供給的正向

目標原始servlet路徑的請求屬性的名稱,您應該還記得,如果forward()作品通過調用getNamedDispatcher(),這些屬性(還有4個更類似的屬性:request_uri,context_path,path_infoquery_string)沒有設置,因爲在這種情況下,最初的ele路徑的內容不會改變。

+0

你能解釋一下你的答案嗎?這個請求屬性是什麼?誰將它設置爲請求URI以及何時?它是標準的,還是特定於Spring MVC或特定的Web容器?如果有兩名前鋒會發生什麼? –

+0

@JB Nizet不,我剛剛發現它在谷歌幫助二次飛行。請添加您的詳細答案,我會立即刪除我的「答案」 – Patison

+0

哦,這麼快,我得到我的答案,我喜歡stackoverflow。謝謝@MaxVasileusky – secondflying

相關問題