现在的位置: 首页 > 综合 > 正文

MVC模式下FreeMarker视图解析器与属性配置

2013年10月13日 ⁄ 综合 ⁄ 共 2115字 ⁄ 字号 评论关闭

FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。

FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  

FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序  

虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据  

FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件  

FreeMarker与容器无关,因为它并不知道HTTP或Servlet;

FreeMarker同样可以应用于非Web应用程序环境  

FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库

 

<?xml version="1.0" encoding="UTF-8"?>

<!-- 对所有类进行扫描,以完成Bean创建和自动依赖注入的功能(除去带@Service注解的类) -->
<context:component-scan base-package="com.bolo">
	<context:exclude-filter type="annotation"
	               expression="org.springframework.stereotype.Service"/>
</context:component-scan>

<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

<!-- 定义FreeMarker视图解析器与属性配置 -->
<bean id="viewResolver"
     class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
     <property name="cache" value="true" />
     <property name="prefix" value="" />
     <property name="suffix" value=".html" />
     <property name="viewClass" 
          value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
     <property name="exposeSpringMacroHelpers" value="true" />
     <property name="exposeRequestAttributes" value="true" />
     <property name="exposeSessionAttributes" value="true" />
     <property name="requestContextAttribute" value="rc" />
     <property name="contentType" value="text/html;charset=UTF-8" />
</bean>

<bean id="freemarkerConfig"
	class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
	<property name="templateLoaderPath" value="/pages"/>
	<property name="freemarkerSettings">
		<props>
			<prop key="template_update_delay">5</prop>
			<prop key="defaultEncoding">UTF-8</prop>
			<prop key="url_escaping_charset">UTF-8</prop>
			<prop key="locale">zh_CN</prop>
			<prop key="boolean_format">true,false</prop>
			<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
			<prop key="time_format">HH:mm:ss</prop>
			<prop key="number_format">0.######</prop>
			<prop key="whitespace_stripping">true</prop>
		</props>
	</property>	
</bean>

抱歉!评论已关闭.