SpringMVC+freemarker 视图解析最小实现

上接SpringMVC+jetty框架搭建

上接SpringMVC通过视图配置器返回Json和跨域Jsonp格式数据

在以上两个配置的基础上再加上freemarker 视图解析

1、在pom.xml中引入freemarker包

<dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.20</version>
            <scope>compile</scope>
        </dependency>


2、在springMVC-servlet.xml中增加配置

<!-- freeMarker视图解析 17061434 -->
    <bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="prefix" value=""/>
<!--可为空,方便实现任意路径来选择视图解释类的逻辑,也可指定为/WEB-INF/page/表示只能解析该路径下的视图-->
        <property name="suffix" value=""/><!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑,也可指定为.ftl,表示只能解析后缀名为ftl的视图-->
        <property name="order" value="2"/><!--解析视图的优先次序-->
        <property name="viewNames" value="*.ftl"/><!--通用解析器可以解析ftl的视图,如果需要其他视图的解析器,可以自行添加,value中可配置多个,以逗号隔开,例如value="*.html,*.jsp"-->
        <property name="contentType" value="text/html;charset=utf-8"/>
    </bean>
    <!-- ftl配置 17061434,配置freeMarker的模板路径-->
    <bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
    </bean>


<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="order" value="1"/>
        <property name="mediaTypes">
            <map>
                <entry key="json" value="application/json"/>
                <entry key="jsonp" value="application/javascript"/>
            </map>
        </property>
        <property name="viewResolvers">
            <list>
                <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
                <ref bean="freeMarkerViewResolver"/>  
            </list>
        </property>
        <property name="defaultViews">
            <list>
                <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
                </bean>
                <bean class="com.suning.viewsolver.JsonpView"/>
            </list>
        </property>
        <property name="ignoreAcceptHeader" value="true"/>
    </bean>


3、测试:

controller类中:

@RequestMapping("/hello.do")
public String hello(HttpServletRequest hsr  
           , HttpServletResponse hsr1) throws Exception {  
       return "/admin/hello.ftl";  
}  



hello.ftl:(文件路径为/WEB-INF/ftl/admin/hello.ftl

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   
 "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
        <title>Spring MVC And Freemarker</title>  
    </head>  
    <body>  
         Hello world , test my first spring mvc !  
    </body>  
</html>  


访问http://localhost:9080/ps_service/hello.do

页面显示为

Hello world , test my first spring mvc !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值