搜索墙首页  编程技术  java  asp  ajax  php  c/c#/c++  数据库  oracle  mysql  db2  操作系统  windows  linux  股吧
首页 > 编程 > java > Struts
 1         
1楼  javatar 2008-01-02

在元旦之夜发布了0.8.0
http://www.commontemplate.org

增加了与struts及struts2的集成sample, (见下载列表中的commomtemplate-sample-0.8.0.zip)


将宏指令的特殊前缀语法去掉, 改成命名约定:

受FreeMarker影响, 它使用仿XML的:
<@mymacro/>
<@mymacro>...</@mymacro>

使自定义宏可以用行指令及块指令两种方式调用,
当以块指令调用时, 可以用<#nest>回调内部块,
(注:<#include>等内置行指令不需要/>结尾)

基于同样的思路, CommonTemplate采用了:
$-mymacro{xxx}
$+mymacro{xxx}...$end

减号前缀表示行指令调用, 加号前缀表示块指令调用,相当于引入了特殊语法.

这是因为指令的解析在编译期就要决定是行指令还是块指令,
而宏的定义在运行期才能获取. 所以需要标识告诉引擎怎么解析.

然而, 思索良久发现, 一个宏要不就是行指令, 要不就是块指令,
很少把一个行指令用块指令调用,或把一个块指令用行指令调用,
如:
$macro{"mybutton"}
<input type="button" value="${name}" />
$end

这个宏肯定会用行指令调用,而
$macro{"mytable"}
<table>
    $inner (注:相当于freemarker的nested)
</table>
$end

这个宏肯定会以块指令调用, 因为它用了inner回调,
也就是说,是行指令,还是块指令,应该在宏定义时就已经决定了,而不是在调用时决定,

所以决定采用命名规则判断是否为块指令(规则可配置)
默认规则为:
以"_block"结尾的宏指令为块指令,如:
$macro{"mytable_block"}
<table>
    $inner
</table>
$end


调用方式与普通指令一模一样, 也就是无特殊语法:
块指令调用:
$mytable_block
    <tr><td></td></tr>
$end

行指令调用:
$mybutton{name: "Query"}


这样,是行指令,还是块指令,在定义时就决定了,也便于理解,
而引擎可以通过匹配命名规则来解析指令树.
2楼  keel 2008-01-03

强力支持一下,特别庆祝sample的问世!
3楼  xyh 2008-01-03

支持struts2的标签么?
4楼  javatar 2008-01-04

xyh 写道
支持struts2的标签么?


struts2的逻辑标签就不需要引入了(CT的指令已包含这些功能), 主要是控件标签的引入,
现在正在考虑引入方案, 是直接用JspTagLib适配器, 还是重新配置指令,

如:
$taglib{s: "struts.tld"}
$s_textfield{label: "密码", name: "pwd"}

如果确信名称不会冲突,也可以不用前缀:
$taglib{"struts.tld"}
$textfield{label: "密码", name: "pwd"}

这种通过适配器的方式, 可以兼容所有JspTagLib.

也可以在commontemplate.properties中配置指令定义:
directive{textfield}=xxx.TextFieldDirectiveHandler

 1         
您的发言将按有关规定都会存档,您须为所发表后果负责,请您遵纪守法并注意语言文明。
标题:CommonTemplate0.8.0发布
热门关注
标题回复点击
上个星期去腾讯面试一位主考官出的动脑题,当时被难住了168599
有没人和我一样厌倦了MVC框架各自定义的那些JSP标记库呢92467
Tapestry会成为Web表示层框架的主流解决方案吗?89380
JavaWeb层的下一个王者是谁?94372
艰难的抉择:SpringMVCORStruts2108326
SSH2:Struts2+Spring+Hibernate的登录25315
帮Springsecurity一个忙:为Struts2写个Plugin对Action进行权限控制59274
在Struts2中应用FreeMarker还是Velocity好?28261
LightURL??打造零配置的Struts2开发方式68256
Struts2返回XML7225
搜索墙@2009 www.pkwall.com all rights reserved QQ:276471788 [京ICP备09111534号]
声明:本站部分数据来源于网络,仅供参考,如有版权问题,请联系我们,我们将及时删除!转载本站请注明来源