我好怕自己成为有故事的人,这一天我怕了好久好久,我唯一能做的只有尽人之力。

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.视图解析器

官方文档给出了常用的视图解析器:

image

其中我们常用的可能就是上面红框中的,不过在一般在使用的是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" />

 

posted @ 2015-11-29 19:32  goLazy  阅读(1723)  评论(0编辑  收藏  举报
你是否也有自己的故事?埋藏在自己心的最深的地方。