Struts+Freemarker一对超强组合(2)

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

由于灵活使用了freemarker以后,我都不用在项目中引入struts的tlds了,可以节约一点服务器资源。

另外以前如果修改了jsp文件后第一次运行时,由于需要重新编译为class,所以会出现很明显的延迟。但是修改fm的ftl模板文件,刷新页面几乎感觉不到延迟,因为ftl模板无需编译。

也许各位会想了,这样组合的效率会高么?但是你从另外一个角度看,asp本身的效率也不高,但是还能活跃在广大的服务器端,何况java呢。

在我前面一章中说过的,如果你原来用struts编写的action,那么可以直接用ftl模板替换jsp文件。完全体现mvc的控制层与展示层分离。而且如果做的好的ftl模板,将来也可以在很多地方通用。

到底可以用在哪些地方?在fm的网站,提供一个网友开发的模板,可以让用户轻松将文档转换为RTF格式。比如在一个通用模板rtf.ftl里有下面这些macro:

<#macro big>

{\fs#{RTF_BigFontSize*2} <#nested>}<#t>

</#macro>

<#macro H1>

{\fs#{RTF_H1FontSize*2} <#nested>}<@newline/><#t>

</#macro>

当然还有定义整个rtf文件结构的地方.xiaozhen.

<#assign RTF_DefaultFontSize=10>

<#assign RTF_BigFontSize=12>

<#assign RTF_SmallFontSize=8>

<#assign RTF_H1FontSize=18>

<#assign RTF_H2FontSize=14>

<#assign RTF_InTable=false>

<#assign RTF_TableColumns=1>

<#macro document>

{\rtf1\ansi\ansicpg1252\deff0\deflang1033<#t>

{\fonttbl<#t>

<#-- feel free to change these fonts (except for f100)... just make sure you keep the same charset if you want RtfStringModel to keep working! -->

{\f0\fswiss\fcharset0 Arial;}<#t>

{\f1\fswiss\fcharset238\fprq2 Arial CE;}<#t>

{\f2\fswiss\fcharset204\fprq2 Arial Cyr;}<#t>

{\f3\fswiss\fcharset161\fprq2 Arial Greek;}<#t>

{\f4\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}<#t>

{\f5\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}<#t>

{\f6\fswiss\fcharset186\fprq2 Arial Baltic;}<#t>

{\f100\fnil\fcharset2 Symbol;}<#t>

}<#t>

\viewkind4\uc1\pard\f0\fs#{RTF_DefaultFontSize*2}<#t>

<#nested><#t>

}<#t>

</#macro>

注:这里<#t>是换行符

然后在应用模板里调用

<#import "rtf.ftl" as rtf>

<@rtf.document>

<@rtf.H1>My big header</@rtf.H1><#t>

<@rtf.big>big</@rtf.big><#t>

<@rtf.big>${otherText}</@rtf.big><#t>

</@rtf.document>

是不是很方便?你可以到这里去下载:http://www.freemarker.org/libraries.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有