2011-08-30 25 views

回答

1

你可以在jsp頁面視圖名稱就像下面這樣:

${pageContext.request.servletPath} 
+0

它不起作用。它返回:'/ WEB-INF/pages/profile.jsp',但需要'profile' – marioosh

+0

對不起,我不知道另一種方式,除了你已經在你的初始消息中描述過。順便說一句,我總是把視圖名稱的模型,當我需要它在我的看法 –

8

$ {requestScope [ 'javax.servlet.forward.servlet_path']}

+0

這應該被標記爲答案! – yglodt

+0

我得到requestScope爲空,異常消息爲「不能索引爲空值」 – cmaduro

15

我跑最近也遇到了同樣的問題。可能有官方的方法來解決這個問題,但我找不到它。我的解決方案是創建一個攔截器將視圖名稱放入模型中。

我的攔截器是非常簡單的:

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; 

public class ViewNameInModelInterceptor extends HandlerInterceptorAdapter { 

    @Override 
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, 
      ModelAndView modelAndView) throws Exception { 

     if (modelAndView != null) { 
      modelAndView.addObject("springViewName", modelAndView.getViewName()); 
     } 
     super.postHandle(request, response, handler, modelAndView); 
    } 

} 

在春天的配置對其進行註冊,也非常簡單(使用命名空間配置):

<mvc:interceptors> 
    <beans:bean class="ViewNameInModelInterceptor" /> 
</mvc:interceptors> 
3

只是人們將爲搜索百里香溶液:

${#httpServletRequest.getServletPath()} 
+0

與@Cyrils相同answer:返回路徑而不是返回的視圖名稱。 – dtrunk

+0

適合我!感謝你! – Roland