强类型的XHTML页面模板

最近跟强类型干上了,呵呵。拿JAVA5的语法和CGLIB小试了一把,试验成果如下:
[code]
public abstract class DemoPage implements XHTMLToolkit {

public Element content(String pageTitle) {
return html(xmlns("http://www.w3.org/1999/xhtml")).$(
head().$(
title(pageTitle)
),
body().$(
table()
)
);
}

public static void main(String[] args) {
Element content = PageRender.render(DemoPage.class).content("hello");
System.out.println(content);
}
}
[/code]
执行结果如下
[code]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>hello</title>
</head>
<body>
<table>
</table>
</body>
</html>
[/code]
优点:
1、模板引用的变量是强类型,重构安全
2、强制XHTML规范,比如把table()放在html下就会出类型错误。
3、强制括号匹配
4、任意scripting

缺点:
1、无法可视化编辑,与美工的团队协作(纯靠CSS。。。)
2、灵活性(只支持XHTML)

由于产生出了整个DOM。所以可以用Java操作DOM,然后利用Instrumention在JVM启动的时候做二次编译,把Java操作DOM的代码编译成Javascript。不过这样做难度要高过GWT了,因为GWT是编译Java源代码的,如果用Instrumention来做的话,就变成了拿Java的字节码做源代码来编译出对等的Javascript了。只有理论上的可能性……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值