随笔-34  评论-40  文章-8  trackbacks-0

webwork+freemarker

文章来自:http://publishblog.blogchina.com/blog/tb.b?diaryID=5607592

原创作者: boyibolomi

webwork相对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)  编辑  收藏

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
 
相关链接:
网站导航: