2011-08-30 57 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

相关问题