springMVC-视图解析器

来源:互联网 发布:洗澡心脏难受知乎 编辑:程序博客网 时间:2024/06/02 07:05
  1. 概述

通常像spring mvc 这样的web框架都会有相应的定位视图技术,spring提供了特定的视图上,spring提供ViewResolver和View两个特别重要的接口,View处理请求的准备的工作,并将该请求提交给某种具体的视图解析器。

2.使用FreeMarker作为视图
步骤一:建立后端控制器FreeMarkerController.java,

@Override    protected ModelAndView handleRequestInternal(HttpServletRequest request,            HttpServletResponse response) throws Exception {        ModelAndView mav=new ModelAndView("base");        mav.addObject("username", "张三");        mav.addObject("time", new Date().toLocaleString());        return mav;    }

步骤二:在spmvc-servlet.xml中配置:

    <!-- freemarker相关配置 -->    <bean id="freeMarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfig">        <property name="defaultEncoding" value="UTF-8"/>        <property name="templateLoaderPath" value="/WEB-INF/freemarker/"></property>    </bean>    <!-- freemarker视图解析器 -->    <bean id="fmViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">        <property name="contentType" value="text/html;charset=utf-8"/>        <property name="cache" value="true"/>        <property name="prefix" value=""/>        <property name="suffix" value=".ftl"/>    </bean>    <bean id="fmControl" class="com.asm.FreeMarkerController"></bean>

并在映射处理器中配置映射路径为:fmControl
步骤三:通过步骤二的配置,我们还需在WEB-INF/freemarker路径下编写base.ftl(base即后端控制器返回的
视图名),主要代码如下:

欢迎来到:FreeMarker模板页面

welcome username{time}

步骤四:启动服务器,输入…/freemarker.do完成测试。
3. 总结
Spring支持多个视图解析器一起使用,即视图解析链。 视图解析链包含一系列视图解析器,更方便开发人员处理某些特殊请求,比如在特定情况下重新定义某些视图(为某个视图解析器使用order,可以改变此视图解析器在整个视图解析链中的解析顺序:order值越大,它在整个视图解析链中的顺序越靠前,即它越会被优先选作为视图解析器)

0 0
原创粉丝点击