今天上午一直在弄jeecmsv5开源代码的部署问题,大家要是有兴趣可以找我要源码还有数据库文件。
jeecms是用spring mvc + freemarker + hibernate 的一个项目,可以试着用它来进行二次开发
下午抽时间看了一下里面的freemarker框架,很是遗憾,看了半天也就只是初步了解freemarker中的宏定义和使用
首先看一下一个简单的宏定义例子
定义宏1:
| |||
使用上面定义:
| ||
输出:
| ||
定义宏2:
| |||
| ||
输出:
<font size="+2" color="black">Hello Fred!</font>
如果使用了宏中未定义的参数或者使用时未将参数值传入,将会报错。
在项目中这些宏定义一般都写在 flt 模板 文件中(至少jeecms这个项目是的)如:table.flt
然后在项目中往往这些模板都是使用<#include > 把这些模板联合一起,或是说整合起来
然后在web.xml 中进行一些配置,
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="freemarkerVariables">
<map>
<!--一些自定义的标签-->
<entry key="uuid" value-ref="uuid"/>
<entry key="cms_tflownode_list" value-ref="cms_tflownode_list"/>
</map>
</property>
<!--
<property name="preTemplateLoaders">
<list>
<ref bean="tplMng"/>
</list>
</property>
-->
<property name="templateLoaderPath" value=""/>
<property name="freemarkerSettings">
<props>
<prop key="tag_syntax">auto_detect</prop>
<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="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.######</prop>
<prop key="whitespace_stripping">true</prop>
<!--空值处理<prop key="classic_compatible">true</prop>-->
<!--取一个别名--->
<prop key="auto_import">/WEB-INF/ftl/pony/index.ftl as p,/WEB-INF/ftl/spring.ftl as s</prop>
</props>
</property>
</bean>
在页面上的使用
流程是这样的,至于在取改其中的样式和模板则需要你对项目更深一层的了解,希望对各位有点帮助吧