我定义了这样的视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我有一个拦截器,当一些条件没有通过时,我想转发到一个jsp页面,我实现如下:
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/WEB-INF/views/jsp/info.jsp");
requestDispatcher.forward(request, response);
Run Code Online (Sandbox Code Playgroud)
上面,我要转发的页面是硬代码,我不想这样做,有什么方法可以从视图解析器中获取页面吗?
如果你想从一个视图转发postHandle它会更容易,因为postHandle你可以完全访问ModelAndView.
在一个preHandle方法中,也可以使用ModelAndViewDefiningException,允许你让Spring在处理程序处理的任何地方向前执行.
你可以这样使用它:
public class ForwarderInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// process data to see whether you want to forward
...
// forward to a view
ModelAndView mav = new ModelAndView("forwarded-view");
// eventually populate the model
...
throw new ModelAndViewDefiningException(mav);
...
// normal processing
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8571 次 |
| 最近记录: |