spring MVC 学习(四)---拦截器,视图解析器
1.接口HandlerInterceptor
该接口包含3个方法,分别是preHandle,postHandle,afterCompletion,分别代表着执行前,执行后,执行完成要执行的方法,其中proHandle如果返回false代表中断后续动作。
//在执行目标程序之前执行,dang放回false就不再向后执行,但还会执行afterCompletion public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub return false; } //在执行目标程序之后执行 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // TODO Auto-generated method stub } //在整个请求处理完后执行 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // TODO Auto-generated method stub }
2.视图解析器
官方文档给出了常用的视图解析器:
其中我们常用的可能就是上面红框中的,不过在一般在使用的是jsp的话,使用第一个红框中的就可以瞒住绝大部分需求了。
InternalResourceViewResolver一般的配置文件如下spring-mvc.xml
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
由于InternalResourceViewResolver继承了UrlBasedViewResolver,在UrlBasedViewResolver中有属性contentType,该属性用来设置视图中的context type,一般建议加上:
<property name="contentType" value="text/html;charset=utf-8" />