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