spring整合freemarker的方法
博客专区 > 大海 的博客 > 博客详情
spring整合freemarker的方法
大海 发表于1年前
spring整合freemarker的方法
  • 发表于 1年前
  • 阅读 26
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: spring配合freemarker,可以生成静态文件供用户访问,也可以动态生成页面给用户。前者的好处是访问页面不走spring,速度快,第二个的好处是即时将修改反馈出去,配合缓存更好用。

注意:freemarker动态视图处理还是需要模板文件的

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
	xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd     
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

		
		<context:property-placeholder location="classpath:system.properties"/>
		
		<util:properties id="sportsUrl" location="classpath:sportsUrl.properties"/>
			
		<mvc:annotation-driven>
			<mvc:message-converters>
				<bean id="stringHttpMessageConverter" 
					class="org.springframework.http.converter.StringHttpMessageConverter">
					<constructor-arg value="UTF-8"/>
				</bean>
				<bean id="gsonHttpMessageConverter" 
					class="org.springframework.http.converter.json.GsonHttpMessageConverter">
				</bean>
			</mvc:message-converters>
		</mvc:annotation-driven>	
			  
        //freemarker视图解析器
		<bean id="freeMarkerViewResolver"
			class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
            //设置freemarker解析给页面的contenttype设置为text、html
			<property name="contentType" value="text/html;charset=utf-8"/>	
            //设置模板文件前缀,这个用法和jsp的视图处理有点像
			<property name="prefix" value=""/>
            //设置后缀,为.html
			<property name="suffix" value=".html"/>
            //设置视图处理优先级别,ContentNegotiatingViewResolver级别最高,不过他会将他会让freemarker处理器的优先处理视图映射
			<property name="order" value="2"></property>
		</bean>
		
	 	<bean id="mainViewer" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
	 		<property name="defaultContentType" value="text/html"></property>
	 		<property name="order" value="1"></property>
	 		<property name="viewResolvers">
	 			<list>
                    //设置子处理器集合,只设置一个freemarker处理器即可
	 				<ref bean="freeMarkerViewResolver"/>
				</list>
	 		</property>
		</bean>
		//设置模板文件路径,这里要注意,如果是模板文件夹在classpath下,要加classpath:,如果是本地任意磁盘上,要加file:
        //设置编码为utf-8
		<bean id="freeMarkerConfig" 
			class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
			<property name="defaultEncoding" value="utf-8"/>
			<property name="templateLoaderPath" value="file:d:/"></property>
		</bean>
		
</beans>

控制器代码: 

@Controller
public class FreemarkerController {
	
	@RequestMapping("/getInfo")
	public ModelAndView getInfo(){
		ModelAndView view = new ModelAndView("hello");
		Map<String,Object> map = Maps.newHashMap();
		map.put("name", "wqeqwe");
		map.put("date", "dsaljakl");
		view.addAllObjects(map);
		return view;
	}
}

模板文件写法:${name}

最后访问getInfo的结果就是输出 :wqeqwe

共有 人打赏支持
粉丝 3
博文 82
码字总数 32130
×
大海
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: