`
taowen
  • 浏览: 195479 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

强类型的XHTML页面模板

阅读更多
最近跟强类型干上了,呵呵。拿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了。只有理论上的可能性……
分享到:
评论

相关推荐

    漂亮的通用后台 html模板 静态模板 后台模板

    2. **通用性**:这里的“通用”意味着模板适用于各种类型的后台系统,无论其功能如何。这意味着模板需要具备良好的灵活性和可扩展性,能够适应不同的业务需求和数据展示方式。 3. **静态模板**:静态模板没有动态...

    奇新CMS模板标签

    - **文章模板**:“article***.xhtml”,用于展示文章详情页面。 - **首页模板**:“index..xhtml”,通常用于展示网站首页。 - **专题模板**:“special***.xhtml”,用于展示网站的专题页面。 - **图片模板**:...

    WEB开发 之 XHTML 语法.docx

    一个简单的XHTML模板如下: ``` &lt;!DOCTYPE Doctype goes here&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;title&gt;Title goes here ``` 8. **DOCTYPE声明** DOCTYPE声明不是XHTML文档的一部分,...

    CSS+2BDiv模板 CSS+2BDiv模板.

    5. **Web2.0风格**:提到"40个web2.0CSSXHTML网页模板",这通常指的是采用Web2.0设计理念的模板,特点是色彩鲜艳、质感强烈、互动性好。这些模板往往结合了CSS3的新特性,如渐变、阴影、圆角等,以及JavaScript交互...

    网站开发模板绿色风

    2. **布局设计**:一个优秀的模板需要有良好的页面布局,以确保信息层次清晰、导航直观。"绿色风"可能采用了响应式设计,使得网站在不同设备上都能良好展示,适应桌面、平板和手机用户。 3. **HTML5和CSS3**:"home...

    房屋建设设计公司CSS模板

    1. **响应式布局**:此CSS模板采用响应式设计,意味着它能根据用户使用的设备类型(如桌面电脑、平板电脑或手机)自动调整布局,提供良好的跨设备浏览体验。 2. **视觉吸引力**:设计通常包含精心挑选的颜色搭配、...

    非常漂亮的桔黄色CSS布局模板

    标题中的“非常漂亮的桔黄色CSS布局模板”指的是一个采用鲜明桔黄色调的网页设计模板,这种颜色通常给人带来温暖和活力的感觉,适用于许多类型的网站,如个人博客、创意作品展示或小型商业站点。该模板可能包含精心...

    100_HTML手机电脑网站_网页源码移动端前端_H5模板_自适应响应式源码.zip

    这个压缩包可能包含了一系列预设计的页面模板,帮助开发者快速构建跨平台的网站。 HTML5是超文本标记语言的第五个版本,它在HTML4的基础上引入了许多新的功能和元素,以提高网页的交互性、可访问性和多媒体支持。...

    爱革CMS(门户网站) 3.0.rar

    ◦所有模板测试通过W 3C的XHTML验证和CSS2.0验证 20.可上传超大文件,显示进度条 可以不需要任何组件和设置的情况下,上传超大文件,而且显示当前的上传进度。上传文件更加友好,强大。 21.智能清除网页上的无用...

    爱革CMS(公司网站) 3.0.rar

    ◦所有模板测试通过W 3C的XHTML验证和CSS2.0验证 20.可上传超大文件,显示进度条 可以不需要任何组件和设置的情况下,上传超大文件,而且显示当前的上传进度。上传文件更加友好,强大。 21.智能清除网页上的无用...

    基于Vue框架的多人花项目前端页面设计源码

    Vue组件是Vue.js的核心概念,它允许开发者将页面分割成独立、可复用的部件,并且每个部件都有自己的模板、脚本和样式。在这个源码包中,包含了大量的Vue组件文件(.vue),这些文件中会定义组件的模板、脚本逻辑和...

    431js_HTML手机电脑网站_网页源码移动端前端js效果_H5模板_自适应css源码ui组件.zip

    在这个压缩包中,HTML文件可能包含了各种页面结构,如头部、主体和底部,以及不同类型的元素,如标题、段落、图片和链接等。 2. **CSS(Cascading Style Sheets)**: CSS是用于描述HTML或XML(包括SVG、XHTML等)...

    手机wrap网站仿答疑中心-权威教师在线解答手机wap学习网站模板

    它采用了一种简化的语言(如WML或XHTML Mobile Profile),以及一套优化过的协议来适应移动网络的限制,如带宽较低、屏幕尺寸较小等。 #### 1.2 手机WAP学习网站的特点 - **页面精简**:为了提高加载速度和节省流量...

    facelets中文教程(初级+高级)

    Facelets文件通常以`.xhtml`为扩展名,这是因为它们基于XHTML标准,这使得它们与HTML兼容,同时又具备Java的强类型和事件处理能力。 1. **Facelets组件** - Facelets组件是UI的构建块,类似于HTML元素,但具有更...

    基于PHP、JavaScript、HTML、CSS、C、C语言开发的紫金楼盘设计源码

    页面模板设计采用HTML文件,共41个,它们是用户看到的网页内容的基础。图形设计方面,则包含了133个PNG图片文件和17个JPG图片文件,这些图片用于展示楼盘设计和相关视觉元素。 此外,项目还包括TTF字体文件、EOT...

    基于Java与JavaScript的GLCS轻量级前后端分离快速开发平台设计源码

    Java作为一种强类型、面向对象的编程语言,其稳定性、性能和跨平台兼容性在企业级应用开发中被广泛认可。而JavaScript文件的少量存在则可能意味着前端界面交互部分采用了JavaScript,或者是利用JavaScript框架如...

    ASP.NET的网页代码模型及生命周期

    当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作系统的安全,如果页面的隐藏域过多,那么这些防火墙可能会禁止页面的某些功能。 4.4.4 Cookie Cookie在客户端用户保存网站的少量的用户信息,服务器可以...

    基于JavaScript的富邦典当 pawn-program 设计源码

    该项目支持TypeScript,这意味着开发者可以使用TypeScript的强类型特性来开发更可靠的应用程序。TypeScript是JavaScript的一个超集,添加了静态类型定义以及基于类的面向对象编程语言的特性。这使得TypeScript成为一...

    html学习笔记

    - **TRANSITIONAL**(过渡类型):允许某些表现层的元素或属性,用于逐步过渡到完全符合XHTML标准的页面。 - **FRAMESET**(框架集):用于定义一组框架。 - **文本标记**: - 加粗:`&lt;b&gt;`、`&lt;strong&gt;`(语义上...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    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 数据库操作 ...

Global site tag (gtag.js) - Google Analytics