本节主要分析Spring + FreeMarker的集成。
先介绍一下 spring+freemarker的集成主要涉及以下配置项:
1、配置FreeMarkerConfigurer
通过freemarkerSettings属性,也能够设置其他FreeMarker的配置。例如,FreeMarker默认每隔5秒检查模板是否被更新,如果已经更新了,就会重新加载并分析模板。但经常检查模板是否更新可能比较耗时。如果你的应用运行在生产模式下,而且你预期模板不会经常更新,则可以将更新的延迟时间延长至一个小时或者更久。
可以通过为freemarkerSettings属性设置template_update_delay达到这一目的。例如:
设置template_update_delay为3600(秒),因此FreeMarker只有在1个小时之后才检查模板是否更新。
2、解析FreeMarker视图
将请求和会话属性作为变量暴露给FreeMarker模板使用。要做到这一点,可以设置exposeRequestAttributes或者exposeSessionAttributes为true:
使用这些宏,必须设置FreeMarkerViewResolver的exposeMacroHelpers属性为true:
3、在FreeMarker中绑定表单域
4、最后,你还需要做一件事才能使用FreeMarker宏
这一行会在模板中导入Spring的FreeMarker宏。
Jeecms中相关的配置文件如下----------------->:
总体说明:
1、定义FreeMaker引入文件,index.ftl前缀为p,spring.ftl的前缀为s,这样在饮用ftl模版的宏定义时,可以简略使用。
在html表单中的使用,例如:
2、在jeecms中,请求回话属性都不允许暴露给freemarker使用。。(不知道是否跟freemarker不支持集群有关系????这样是否可以支持集群)
以下是涉及到的配置文件:
在这个配置文件中,freeMarkerConfigurer作为 StaticPageSvcImpl的一个属性,注入到这个类中。
freeMarkerConfigurer的配置包括freemarker定义的标签(见freemarkerVariables),freemarkerSettings中定义了一些详细的属性。
详见前面的描述。
view resolver 配置:
freemarkerConfig 配置:
view resolver 配置:
freemarkerConfig 配置:参数配置与jeecms-servlet-admin.xml类似。
至此,JeeCms中的FreeMarker的配置已经分析完毕。