最近跟强类型干上了,呵呵。拿JAVA5的语法和CGLIB小试了一把,试验成果如下:
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);
}
}
执行结果如下
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>hello</title>
</head>
<body>
<table>
</table>
</body>
</html>
优点:
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了。只有理论上的可能性……
分享到:
- 2006-12-01 20:15
- 浏览 2198
- 评论(0)
- 论坛回复 / 浏览 (0 / 2676)
- 查看更多
相关推荐
2. **通用性**:这里的“通用”意味着模板适用于各种类型的后台系统,无论其功能如何。这意味着模板需要具备良好的灵活性和可扩展性,能够适应不同的业务需求和数据展示方式。 3. **静态模板**:静态模板没有动态...
- **文章模板**:“article***.xhtml”,用于展示文章详情页面。 - **首页模板**:“index..xhtml”,通常用于展示网站首页。 - **专题模板**:“special***.xhtml”,用于展示网站的专题页面。 - **图片模板**:...
一个简单的XHTML模板如下: ``` <!DOCTYPE Doctype goes here> <html xmlns="http://www.w3.org/1999/xhtml"> <title>Title goes here ``` 8. **DOCTYPE声明** DOCTYPE声明不是XHTML文档的一部分,...
5. **Web2.0风格**:提到"40个web2.0CSSXHTML网页模板",这通常指的是采用Web2.0设计理念的模板,特点是色彩鲜艳、质感强烈、互动性好。这些模板往往结合了CSS3的新特性,如渐变、阴影、圆角等,以及JavaScript交互...
2. **布局设计**:一个优秀的模板需要有良好的页面布局,以确保信息层次清晰、导航直观。"绿色风"可能采用了响应式设计,使得网站在不同设备上都能良好展示,适应桌面、平板和手机用户。 3. **HTML5和CSS3**:"home...
1. **响应式布局**:此CSS模板采用响应式设计,意味着它能根据用户使用的设备类型(如桌面电脑、平板电脑或手机)自动调整布局,提供良好的跨设备浏览体验。 2. **视觉吸引力**:设计通常包含精心挑选的颜色搭配、...
标题中的“非常漂亮的桔黄色CSS布局模板”指的是一个采用鲜明桔黄色调的网页设计模板,这种颜色通常给人带来温暖和活力的感觉,适用于许多类型的网站,如个人博客、创意作品展示或小型商业站点。该模板可能包含精心...
这个压缩包可能包含了一系列预设计的页面模板,帮助开发者快速构建跨平台的网站。 HTML5是超文本标记语言的第五个版本,它在HTML4的基础上引入了许多新的功能和元素,以提高网页的交互性、可访问性和多媒体支持。...
◦所有模板测试通过W 3C的XHTML验证和CSS2.0验证 20.可上传超大文件,显示进度条 可以不需要任何组件和设置的情况下,上传超大文件,而且显示当前的上传进度。上传文件更加友好,强大。 21.智能清除网页上的无用...
◦所有模板测试通过W 3C的XHTML验证和CSS2.0验证 20.可上传超大文件,显示进度条 可以不需要任何组件和设置的情况下,上传超大文件,而且显示当前的上传进度。上传文件更加友好,强大。 21.智能清除网页上的无用...
Vue组件是Vue.js的核心概念,它允许开发者将页面分割成独立、可复用的部件,并且每个部件都有自己的模板、脚本和样式。在这个源码包中,包含了大量的Vue组件文件(.vue),这些文件中会定义组件的模板、脚本逻辑和...
在这个压缩包中,HTML文件可能包含了各种页面结构,如头部、主体和底部,以及不同类型的元素,如标题、段落、图片和链接等。 2. **CSS(Cascading Style Sheets)**: CSS是用于描述HTML或XML(包括SVG、XHTML等)...
它采用了一种简化的语言(如WML或XHTML Mobile Profile),以及一套优化过的协议来适应移动网络的限制,如带宽较低、屏幕尺寸较小等。 #### 1.2 手机WAP学习网站的特点 - **页面精简**:为了提高加载速度和节省流量...
Facelets文件通常以`.xhtml`为扩展名,这是因为它们基于XHTML标准,这使得它们与HTML兼容,同时又具备Java的强类型和事件处理能力。 1. **Facelets组件** - Facelets组件是UI的构建块,类似于HTML元素,但具有更...
页面模板设计采用HTML文件,共41个,它们是用户看到的网页内容的基础。图形设计方面,则包含了133个PNG图片文件和17个JPG图片文件,这些图片用于展示楼盘设计和相关视觉元素。 此外,项目还包括TTF字体文件、EOT...
Java作为一种强类型、面向对象的编程语言,其稳定性、性能和跨平台兼容性在企业级应用开发中被广泛认可。而JavaScript文件的少量存在则可能意味着前端界面交互部分采用了JavaScript,或者是利用JavaScript框架如...
当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作系统的安全,如果页面的隐藏域过多,那么这些防火墙可能会禁止页面的某些功能。 4.4.4 Cookie Cookie在客户端用户保存网站的少量的用户信息,服务器可以...
该项目支持TypeScript,这意味着开发者可以使用TypeScript的强类型特性来开发更可靠的应用程序。TypeScript是JavaScript的一个超集,添加了静态类型定义以及基于类的面向对象编程语言的特性。这使得TypeScript成为一...
- **TRANSITIONAL**(过渡类型):允许某些表现层的元素或属性,用于逐步过渡到完全符合XHTML标准的页面。 - **FRAMESET**(框架集):用于定义一组框架。 - **文本标记**: - 加粗:`<b>`、`<strong>`(语义上...
13.2.1 强类型的DataSet 13.2.2 空值 13.3 LINQ to Entities 13.3.1 生成数据模型 13.3.2 数据模型类 13.3.3 实体关系 13.3.4 查询存储过程 13.3.5 LINQ to Entities查询揭秘 13.4 数据库操作 ...