是一种访问JSP中的视图名称的方法(下例中为profile
),或者我需要将此名称添加到模型中?Spring MVC:如何在JSP中获取视图名?
@RequestMapping(value="/user/account", method=RequestMethod.GET)
return "profile";
}
是一种访问JSP中的视图名称的方法(下例中为profile
),或者我需要将此名称添加到模型中?Spring MVC:如何在JSP中获取视图名?
@RequestMapping(value="/user/account", method=RequestMethod.GET)
return "profile";
}
你可以在jsp页面视图名称就像下面这样:
${pageContext.request.servletPath}
我跑最近也遇到了同样的问题。可能有官方的方法来解决这个问题,但我找不到它。我的解决方案是创建一个拦截器将视图名称放入模型中。
我的拦截器是非常简单的:
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>
它不起作用。它返回:'/ WEB-INF/pages/profile.jsp',但需要'profile' – marioosh
对不起,我不知道另一种方式,除了你已经在你的初始消息中描述过。顺便说一句,我总是把视图名称的模型,当我需要它在我的看法 –