webwork+freemarker
文章来自:http://publishblog.blogchina.com/blog/tb.b?diaryID=5607592
原创作者:
boyibolomiwebwork相对struts要简单直接一些,打算以后的项目都用webwork2了。
webwork的文档确实做得不好,用wiki显得杂乱无章。
项目文档还是应该专门编写,以一个完整的思路来编写,对于初学者会碰到的问题有一个清晰的指导。
经过一些痛苦之后,我终于让freemarker如我期望的工作了。
freemarker确实是不错的模版语言引擎,尤其是处理对象图很方便,处理xml也很方便,还支持xpath哦。另外写文章来表扬freemarker。
本文主要是讲webwork和freemarker的结合点。
为了国际化(i18n),我希望在freemarker的文件中也使用webwork的jsptag,
因为webwork的tag可以很好的解决国际化问题。
为了这一点花费了一个上午的时间,从webwork2文档的各个角落找到了解决各个问题的钥匙。
要点有三:
1 web.xml中
要增加
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>com.opensymphony.webwork.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<taglib>
<taglib-uri>webwork</taglib-uri>
<taglib-location>/WEB-INF/webwork.tld</taglib-location>
</taglib>
否则在ftl文件头部写的<#assign ww=JspTaglibs["/WEB-INF/webwork.tld"] />是不能被正确处理的。
我由于没有注意这点,花的时间最多。
2 freemarker的文件一般以后缀ftl,ftl文件的头上要写
<#assign ww=JspTaglibs["/WEB-INF/webwork.tld"] />
这样才能在ftl中使用webwork的tag。
webwork文档是怎么写的呢,直接告诉读者:
<@ww.text name="hello"/>
失败之后发现,后面的后面还有一段话,说明要加上 <#assign mytag=JspTaglibs["/WEB-INF/mytag.tld"]>
于是加上,还是失败,郁闷了。
再往下文看,还有一个Note:说明了我在第1条中说明的内容。
怎么能拿这样的文档给读者呢?
3 要注意一个细微的差别!!
在jsp中用tag,是这样的:
<ww:text name="login.title"/>
在ftl中用tag,是这样的:
<@ww.text name="login.title"/>
其中<ww:text ... 中间是冒号 :
<@ww.text ... 则是句号.
着急的初学者常常看不到这个差别,例如我。
posted on 2008-04-23 09:15
蒋家狂潮 阅读(98)
评论(0) 编辑 收藏