写JSP和Struts的人肯定对JSP中一堆的JSP TAG觉得挺烦的。
例如输出一个属性就要写那么多代码
<s:property value=" userName "/>
而写一些嵌套就更难看了,所以,很多人转向了Tapstry和Freemarker。
废话少说,来看看一个Facelets的例子:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jstl/core">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Hello</title>
</head>
<body>
Hi. 我是#{UserBean.name}<p/>
<form id="helloForm" jsfc="h:form">
<input type="text" jsfc="h:inputText" id="userNo"
value="#{UserBean.userNumber}"
validator="#{UserBean.validate}"/>
<p />
<input type="submit" jsfc="h:commandButton" id="submit"
action="success" value="Submit" />
<p />
<h:message showSummary="true" id="errors1" for="userNo"/>
<p />
<c:forEach begin="1" end="4" varStatus="v">
#{view.viewId} #{v.index}<br/>
</c:forEach>
</form>
</body>
</html>
请注意以上代码的以下特点:
- 输出一个变量变得如此简单“我是#{UserBean.name}”,和freemarker差不多;
- 有利于原型法修改html页面:通过jsfc来绑定一个UI空间,不需要<ui:input这种方式来指定了,保持了html的原始面貌;有点像Tapestry的jwcid属性;
- 对于其他的Tag,可以完全照常使用。
JSP的优点:
1)可平衡现有的JSP应用;
2)很多极好的IDE均支持JSP。
Facelets的优点:
1)在性能和可伸缩性方面大大改进;
2)快速地模板/装饰功能,支持页面重用;
3)精确地定位错误报告;
4)完整支持EL表达式。
结论:除非项目被迫使用JSP,否则最好是选用Facelets。
本文参考了:http://www.jsfcentral.com/articles/facelets_1.html,我只描述了精华部分。
分享到:
相关推荐
Facelets ,very good
在 JavaServer Faces (JSF) 2.0 中,Facelets 取代 JavaServer Pages (JSP) 成为默认的视图声明语言 (VDL)。有了 Facelets,您不需要像以前在 JSF 1.2 中那样配置视图处理器。Facelets 是一种以 JSF 为中心的视图...
facelets中文初级+高级教程,另有facelets标签
facelets 简单教程,相信你一定会受益非浅。
jsf_facelets 1.0.10版本
JSF+Facelets相结合的应用程序例子。
facelets源码包,包括源码和帮组文档。。
netbeans_Facelets_Seam_Ejb3编程入门
JSF/Facelets/xhtml学习
jsf-facelets.jar 下载 希望对您有用
facelets在myeclipse开发下的demo,直接导入后myeclipse就能用
JavaEE5学习笔记13-JSF集成Facelets使用经验总结.
Facelets 非常适合 JSF 最后,专为 JSF 设计的视图技术! 试图把 JSF 和 JSP 结合起来就像试图要把脚硬塞进手套一样:可能做得到,但是只是更好的解决办法出现之前的一个权宜之计。在这篇文章中,JSF 的热心支持者 ...
jsf-facelets.jar 1.1.15.B1
Facelets 非常适合 专为 JSF 设计的视图技术
jsf+facelets+ajax4jsf的全部jar包
Facelets Essentials - APRESS
jsf-facelets1.1.9 目前最高版本 时间:2012年9月
facelets example program 编程 例子 JavaJazzUp.pdf ejb
自己利用jsf richfaces facelets实现的页面局部刷新的示例,有兴趣的朋友可以下载看看。