Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7582098 建立时间:2006年5月29日 |

| |
[Tapestry]Tapestry的模板技术探究 软件技术
lhwork 发表于 2006/7/11 17:45:20 |
Tapestry提供的模板技术非常好,对于模板的侵入性特别的低。可以让美工人员和开发人员尽可能的协同工作。这个优点恰恰是许多其它web框架的弱点。请看下面的分析:一、美工人员的工作首先,利用可供利用的方便工具如DreamWeaver创建设计HTML页面,包括CSS,图片等。然后,在已经增加了动态内容的页面上修改,修改,再修改......直到客户满意为止。请注意,此时的动态内容基本上只是增加了SPAN标签,修改了标签(仅仅增加了一个属性JWCID)美工人员使用设计工具基本上感觉不到有任何变化。也许大家还不是十分清楚,请继续往下看...二、开发人员的工作1,简单动态内容如果纯粹是显示的内容,需要把静态内容使用SPAN包围起来,如:
<td>张三</td><td>30</td>修改为:
<td><span jwcid="name">张三</span></td><td><span jwcid="age">30</span></td>如果是用户需要输入的内容,则需要增加一个JWCID属性,如:
<td><input type="text" name="username" value="张三"/></td><td><input type="text" name="age" value="30"/></td>修改为:
<td><input jwcid="name" type="text" name="username"/></td><td><input jwcid="age" type="text" name="age" value="30"/></td>当然了,page文件中需要定义name和age组件的其它属性。强烈建议:HTML页面上只增加span和jwcid,其它部分写入page文件中,这是为了尽量少地干扰美工人员的工作。2,分支动态内容页面上可能存在根据不同的条件显示不同的内容,也就是if-then-else。这种情况需要美工在静态页面上作出所有情况(可能对静态页面有一定的影响),如:
<!-- if >0 then H else L--><td>HL</td>修改为
<!-- if >0 then H --><td><span jwcid="if">H</span><span jwcid="else">L</span></td>3,循环动态内容
<tr> <td>1</td> <td>a</td></tr><tr> <td>1</td> <td>b</td></tr>修改为
<span jwcid="items"><tr> <td><span jwcid="item.id">1</span></td> <td><span jwcid="item.name">a</span></td></tr></span><span jwcid="$REMOVE$"><tr> <td>1</td> <td>b</td></tr></span>注意,把重复的内容使用$REMOVE$包围起来。三、美工人员和开发人员的协作在以上两个步骤的基础上,美工人员和开发人员共享同一套页面,互不干扰,实现尽可能的协同工作。本文从程序的结构上对Tapestry所支持的模板技术进行了分类介绍,可见对于美工人员和开发人员之间的分工和协作能够起到很大的作用。我想这个应该是Tapestry最大的卖点了!Tapestry尤其适合于“先由美工人员作出所有页面,再由开发人员进行修改,然后美工人员不断修改页面,开发人员继续对应......”这样的工作流程。当然了,对于异常复杂的页面来说,Tapestry也许可能也无能为力,只能采用折中的办法来做了。 |
|
|