上接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 !