springMVC返回HTML视图配置

首先在web.xml中进行相关配置

  <!--配置springmvc DispatcherServlet-->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <!--配置dispatcher.xml作为mvc的配置文件-->
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!--把applicationContext.xml加入到配置文件中-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

然后在applicationContext.xml中配置渲染器

<!-- freemarker html渲染器配置,搜索/WEB-INF/pages.html进行匹配 -->
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/WEB-INF/pages/" />
        <property name="freemarkerSettings">
            <props>
                <prop key="template_update_delay">0</prop>
                <prop key="default_encoding">UTF-8</prop>
                <prop key="number_format">0.##########</prop>
                <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
                <prop key="classic_compatible">true</prop>
                <prop key="template_exception_handler">ignore</prop>
            </props>
        </property>
    </bean>

最后再到springMVC的配置文件中配置,我这里该文件名称为dispatcher-servlet.xml

<!--利用freemarkerView解析器解析html视图-->
    <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"></bean>
    <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="exposeRequestAttributes" value="true"/>
        <property name="exposeSessionAttributes" value="true"/>
        <property name="viewClass" >
            <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
        </property>
    <property name="cache"><value>true</value></property>
    <property name="suffix"><value>.html</value></property>
    <property name="contentType"><value>text/html; charset=UTF-8</value></property>

html视图渲染的核心就是freemarker!!!

加说一段,如果项目中既有html也有jsp,我这里是配置两种视图解析器:

order属性进行设置 系统首先按解析器的order值进行查找 首先使用FreeMarkerViewResolver解析器调用canHandle方法,判断当前解析器对视图是否能够解析。如不能解析在依次调用其他的。

注意上面两个解析器配置必须把freemarker解析器的顺序放在前面,即配置为:<property name="order" value="0"/>

猜你喜欢

转载自blog.csdn.net/qq_19167629/article/details/82663935