用户操作
[即时聊天] [发私信] [加为好友]
wanghailongID:buaawhl
102524次访问,排名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

    原创 Revolutionary Template Tech -- fastm收藏

    新一篇: Java Web开发构想(1) -- 1.背景、形势 2.Web开发框架层次概述 | 旧一篇: fastm 1.0 Milestone 发布

    Revolutionary Template Tech -- fastm

    1. Overview

    There are a lot of template techs on the world, like JSP, Taglib, Freemarker, Velocity, XSL, Jivan, XMLC, Tapestry, Wicket, JDynamiTe, etc.

    For more info, please visit.

    http://java-source.net/open-source/template-engines

     

    The reason why I write “yet another template -- fastm” is just that I can not find a good enough one for me to use.

     

    The templates fall into 2 categories:

    (1) Script with logic (if, else, for); like JSP, Taglib, Freemarker, Velocity, XSL, Tapestry, etc.

    (2) Resource without logic; like Jivan, XMLC, Wicket, fastm, etc.

    Here I like to review these templates group by group to list their and disadvantages that I am not satisfied.

    2. JSP, Taglib

    At first, people write HTML in the Servlet code. The code is polluted by the long HTML.

    So JSP is made.  Then people write code in the HTML.  The HTML is polluted by code.

    So Taglib is made. People write Taglib as code, since Taglib’s XML format seems look better than code in the HTML.

    To display the Taglib in HTML Editors like Dreamweaver, Taglib Display Plugin is made. They are complex jobs.

    As we can see, the whole thing is becoming more and more complex.

    3. Freemarker, Velocity

    Freemarker, Velocty are scripts containing logic like if, else, for, set, etc, which may affect the HTML display effect in the HTML browser.

    4. Tapestry, Wicket

    Tapestry, Wicket uses HTML tag as its logic tag or page component tag.

    Tapestry contains logic like if, else, for, etc, while Wicket contains none.

    Both Tapestry and Wicket have their own view model like Label, Link, Table, etc.

    You have to write code to put your data into these view models.

    5. Jivan, XMLC

    www.jivan.org

    Jivan and XMLC directly manipulate the HTML DOM node. Pure HTML, no any pollution.

    You have to write code to put your data into the DOM node.

    6. XSL

    XSL directly manipulates the HTML DOM node too.

    XSL can be seen as a little complex template script containing logic like match, choose, otherwise, etc.

    7. JDynamiTe

    http://sourceforge.net/projects/jdynamite

    JDynamiTe ports PHPBB template to Java.

    Like PHPBB template, you have to write code to search the resource block in the template and then use it.

    To solve that problem, I wrote fastm.

    8. fastm

    Now it is fastm’s turn. Thanks for your patience. :-)

    fastm tries to avoid above disadvantages and leverage their advantages.

    fastm template is like PHPBB or JDynamiTe template, which uses XML comment as block mark and not contains any logic at all.

     

    The formula of fastm is very simple and straight-forward:

    Template DOM + Object DOM = Result HTML

     

    For example, we have a list of User objects, which has name, address such properties.

    We can display the users by following template

     

    <!-- BEGIN DYNAMIC: users -->

    Name: {name}

    Address: {address}

    <!-- END DYNAMIC: users -->

     

    As we can see, XML Comment not affects HTML display effect in the Browser or HTML Editor like Dreamweaver.

     

    For a if-else logic, like

    <% if(name == null ){ %>

            No User Name Defined

    <%}else if(isSuperUser(name)){%>

            Super User: <%= name %>

    <%} else{%>

            Common User : <%= name %>

    <%}%>

     

    Fastm template should be:

     

    <!-- BEGIN DYNAMIC: no_name -->

            No User Name Defined

    <!-- END DYNAMIC: no_name -->

     

    <!-- BEGIN DYNAMIC: super_user -->

            Super User: {name}

    <!-- END DYNAMIC: super_user -->

     

    <!-- BEGIN DYNAMIC: common_user -->

            Common User: {name}

    <!-- END DYNAMIC: common_user -->

     

    The logic is to be moved back to java code as:

     

    Map map = new HashMap();

    map.put(“name”, name);

    If(name == null){
        map.put(“no_name”, map);

    } else if(isSuperUser(name)){

        map.put(“super_user”, map);

    }else{

        map.put(“common_user”, map);

    }

     

    Right. fastm template not supports script logic.

    You have to write your logic in java code, like Jivan, XMLC, Wicket, etc.

     

    As we can see, fastm is very easy and simple to use. And fastm has the fastest speed and smallest size among all template techs. 

     

    9. The Good of Driving the Logic back to Java Code

    (1) It solves the HTML code pollution. Template can be correctly displayed in the Browsers or HTML Editors.

    (2) The logic in the Java code is easy to debug.

    (3) The logic in the Java code is easy to reuse.

     

    Here is the rationale of fastm:

    Business logic is logic. Presentation logic is logic too.

    Presentation logic should be organized neatly as Business logic too.

    10. Designer friendly

    fastm is quite “Designer friendly”.

    fastm HTML template can be displayed correctly in the Browers or HTML editors. What you see is what you get”.

    Microsoft provides XML formats of office documents.

    For example, Excel (2002 or above) file can be saved and edited as XML format.

    fastm works quite well for that too.

    Fastm Excel XML template can be displayed correctly in the Excel too. “What you see is what you get”.

    So in such kinds of “visual XML UI editors”, fastm has more advantages than scripts like JSP, Taglib, XSL, freemarker, velocity, Tapestry.

    Wicket has the same “Designer friendly” effect as fastm too.

    The most “Designer friendly” templates are Jivan, XMLC. They are just pure HTML, XML.

    11. DOM Granularity, Reusability

    Compared with XML DOM node, fastm Template DOM node is more flexible, since it is customized by user self.

    For example, we want to display a list of users in two kinds of layout: list or table.

     

    (1) XML DOM way

    [code]

    <ul>

    <li> name: <span> show name here</span></li>

    </ul>

     

    <table>

    <tr>

    <td> name: <span> show name here</span></td>

    </tr>

    </table>

    [/code]

     

    As we can see, the 2 DOM level are different.

    “List” has 3 levels; “Table” has 4 levels.

     

    You may need to write 2 sets of “DOM manipulation” code for the 2 DOMs.

    The DOM can not be shared. You modified the DOM, and then output it.

    Next time, you need to operation on a fresh-new DOM.

     

    (2) fastm way

    [code]

    <ul>

    <!-- BEGIN DYNAMIC: user -->

    <li> name: {name}</li>

    <!-- END DYNAMIC: user -->

    </ul>

     

    <table>

    <!-- BEGIN DYNAMIC: user -->

    <tr>

    <td> name: {user}</td>

    </tr>

    <!-- END DYNAMIC: user -->

    </table>

    [/code]

     

    As we can see, both the “List” and “Table” templates have 2 levels.

    We just need one set of code to get same Object DOM for the 2 Template DOMs.

    Since the data is organized in the Object DOM, not directly put into the Template DOM, so the Template DOM can be shared. 

    fastm Template DOM is read only and thread safe, which can be used any times by any number of concurrent programs.

    12. Resource

    The old version 1.0 alpha of fastm is on https://sourceforge.net/projects/fastm

    The new version 1.0 M of fastm is on https://fastm.dev.java.net/

    Please check the “Documents and Files”.

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

    That includes source, sample, doc of fastm1.0M, and view adapter for SpringMVC, WebWork.

    https://fastm.dev.java.net/servlets/ProjectDocumentList?folderID=1552&expandFolder=1552&folderID=0

     

    发表于 @ 2005年05月30日 17:37:00|评论(loading...)|编辑

    新一篇: Java Web开发构想(1) -- 1.背景、形势 2.Web开发框架层次概述 | 旧一篇: fastm 1.0 Milestone 发布

    评论:没有评论。

    发表评论  


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