用户操作
[即时聊天] [发私信] [加为好友]
wanghailongID:buaawhl
102521次访问,排名919,好友0人,关注者1人。
buaawhl的文章
原创 49 篇
翻译 0 篇
转载 0 篇
评论 152 篇
最近评论
bruce_lau:看看这个解决方案,对象的缓存和jive差不多,列表也是选id,但是对列表还有缓存,还可以根据字段作散列列表缓存,这样列表的缓存命中率非常高,是一个比较好的数据库缓存解决方案。参见http://shedewang.com/akaladocs/api/com/akala/dbcache/core/BaseManager.html
yipeng6213:个人觉得fastm真的很不错,我之前的模板是用velocity写的,我现在想把它转换成fastm的,但其中velocity模板中的if elseif else 怎么 用fastm替换呢?请问有没有具体的实例 给我参考一下,急!
lidaoguang00109:谢谢您的努力.
这个FastM我使用过了,觉得很不错.
容易上手,特别是可以直接用HTML观察模版的布局形态,有利于界面效果的评估.
现在有一个问题一直困扰我.
就是如果实现一个Table,每一个列被点击后都能排序,用FastM如何实现呢?每一次ValueSet DOM都要重新设置吗?
vkuja2003:楼主做学问的方法很值得学习
noia_zhou:我拜读了你的持久层和cache设计的一些文章,觉得想法很不错。我觉得现在的持久层框架还是挺复杂的,如hibernate等,单看看它10几兆的开发包就知道了,我的初步想法是利用po跟table的字段一致性,通过反射po得到要执行的sql。这样做的好处是少了很多表结构的配置文件。然后做一个简单dao来完成。这里我的想法是做两个dao,一个BaseDao,BaseChaheDao。其中两者都是 继……
文章分类
收藏
    相册
    友情blog
    http://smsbim.bokee.com/
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 DOMPlus (Fastm的DOM版本) 发布收藏

    新一篇: Iterator vs Visitor, Pull vs Push | 旧一篇: 递归分解 - Fastm Match Engine


    https://fastm.dev.java.net/servlets/ProjectDocumentList

    使用方法和Fastm一样简单。
    Fastm的使用方法是
    render( fastm template, pojo model) => result

    DOMPlus的使用方法
    bind(DOM node, pojo model) => SAX, or DOM

    domplus0.1a下载包里面包括,readme.txt.
    所有的source, 和 test。还包括最新的还没有正式发布的fastm source。

    html , xml, result html 也都在test的source目录下。
    由于unit test case需要比较template result,所以都放到了test 的 src的资源目录下面。sample 也是test.

    DOMPlus和Wicket一样,采用了很少量的自定义XML Attribute。
    Fastm, DOMPlus和Wicket一样,都属于Model Match技术 --
    用户提供一份View Model,然后Match Engine把View Model和template匹配在一起。template本身不包含任何logic,script。

    所不同的是,类似于Swing,Wicket要求用户提供一个特殊的View Model。Table, List等框架定义的数据类型。而且Wicket难以脱离Web环境使用。

    Fastm, DOMPlus 不需要用户提供特殊类型的View Model, 只需要提供POJO就可以。
    POJO可以是任何Object. bean, map, DOM。
    所以,对于DOMPlus来说。
    DOM + DOM => DOM or SAX
    XML + XML => XML

    恰好是XSL的功能。XSL也是XML(XSL) + XML => XML
    所不同的是,DOMPlus的XML Template是Pure HTML,所见即所得。HTML Template干净程度直追XMLC,等同或者超过Wicket(更别说Tapestry)。

    用法:
    Fastm Template只有2个自定义标记。BEGIN-END 和 {}。标记动态块和变量。
    DOMPlus也是如此。针对DOM Node类型,只有3个自定义Attribute。
    nodeTarge标记动态Element;attributesTarget标记动态attriburtes;textTarget标记动态text。

    比如,下面这段HTML

    <table border="1">
    <tr nodeTarget="row">
    <td bgcolor="red" attributesTarget="bgcolor=@bgcolor" nodeTarget="col" textTarget="data">grid value</td>
    </tr>
    </table>

    和下面这段XML Data

    <data>
    <preface>dynamically set title</preface>
    <row>
    <col bgcolor="green"><data>grid 1</data></col>
    <col bgcolor="yellow"><data>grid 2</data></col>
    <col bgcolor="green"><data>grid 3</data></col>
    </row>
    <row>
    <col bgcolor="yellow"><data>grid 4</data></col>
    <col bgcolor="green"><data>grid 5</data></col>
    <col bgcolor="yellow"><data>grid 6</data></col>
    </row>
    </data>

    配合起来,就产生一个填充了数据行列的table。

    DOMPlus和所有的基于DOM Node的技术一样,比如XMLC等,最小的处理单位都是Node。对于希望只替换部分text的需求来说,可以引入外来的text parser engine.
    比如,fastm, regular expression, velocity, freemarker等。

    <a href = "http://www.domain.com/app/{id}.text"

    DOMPlus的一个例子就是采用fastm作为text parser。
    当然,fastm同样可以接受DOM作为Model。

    缘起:why write DOMPlus.

    一位使用Fastm的程序员朋友,督促我采用Wicket Tag的方式,放弃XML Comment的标签方式。
    另一位使用Fastm的程序员朋友干脆督促我,让Fastm实现自定义标签。
    我正好也需要进一步改进重构fastm,提高动态include template iteration, template recursion (递归树形数据需要的递归template)的空间和时间效率。所以,就一起改进了。
    以至于,fastm能够支持自定义如下的mark.
    <p being=''block"/> // 动态块
    <span name="variable"> default value </span> // 变量
    <p end ="block">

    但是做到这样,第一位朋友仍然不满意,他希望fastm能够达到Wicket的效果,能够支持tag之间的嵌套层次关系。
    于是我就干脆开发了DOMPlus。把fastm的思路移植到XML DOM。
    我也尝试把DOMPlus移植到Javascript。DOM + DOM = DOM 对 Ajax来说,用起来太容易不过了。只是我的JavaScript的调试能力有限。而且重构困难。所以,写完了,还没有进行调试和运行。说实话,还不知道 how。以后我可能会继续。
    如果DOMPlus的JavaScript版本存在的话,可能是XSL之外的一个Ajax 处理复杂HTML Layout(尤其是多重循环,多重数据)的更加简单易用的可选工具。
    Java Script也有TrimPath JST等Scripted Template. 但这些template并不是Pure HTML, 可能无法直接在browser里面显示。

    ----
    数据寻址方式。
    如果Model是POJO, 一般遵守OGNL style。
    如果Model是DOM, 一般遵守XPath style。

    当然,可以采用JXPath之类的工具,把对POJO的访问也统一为XPath。

    发表于 @ 2006年07月05日 14:54:00|评论(loading...)|编辑

    新一篇: Iterator vs Visitor, Pull vs Push | 旧一篇: 递归分解 - Fastm Match Engine

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © buaawhl