使用过JSF的人都知道,编写一个JSF组件是多么的复杂——tag类和tld、renderer、uicomponent……复杂的生命周期还有一堆的配置,真是让人望而却步。组件很难扩展是一个面向组件的框架的致命缺点,因为不管标准的组件库和第三方的组件库有多少多很难穷尽所有的需求。
更何况有时候我们只是想把几个已经存在的组件稍微组合一下或者加一些特定的约束就得到一个新的复合组件了,这个需求本来就很简单,但是你要定义自己的JSF组件就太复杂了,显得不值得了。以前最好的解决办法就是使用facelets了,不过JSF2.0中也提供了类似的功能,只要一个文件就搞定了。
加入我们定义一个输出组件,它输出的文字总是黄色的,可以这样使用:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ez="http://java.sun.com/jsf/composite/simpleout">
<h:head>
<title>Yellow Text Example</title>
</h:head>
<h:body>
<h1>Output Text Example</h1>
<h:form id="form1">
<ez:out value="Test Value"/>
<p><h:commandButton value="reload"/></p>
<h:messages/>
</h:form>
</h:body>
</html>
那下面就是定义这个组件的文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite">
<head>
<title>This will not be present in rendered output</title>
</head>
<body>
<composite:interface>
<composite:attribute name="value" required="false"/>
</composite:interface>
<composite:implementation>
<h:outputText value="#{compositeComponent.attrs.value}" style="background-color: yellow"/>
</composite:implementation>
</body>
</html>
简单吧?
参考:
分享到:
相关推荐
JSF2.0标签手册DQSV
由于JSF2.0标准实现没有提供文件上传组件,而实际应用中很多时候需要上传文件,为了方便开发,我做了一个基于JSF2.0的文件上传组件,上传使用的是Apache 的commons-fileupload组件,我已经将commons-fileupload-...
Mojarra JSF 2.0库文件。开发JSF2.0 Web应用时放在lib目录下。
JSF 2.0 Programming Cookbook JSF PAGE Ajax JSF J2EE Eclipse IDE support
JSF2.0实战 - 6、TextBox示例代码
jSF2.0与Spring整合实例+教程
JSF2.0实战 - 4、自定义组件 示例代码
jsf2.0的开发配置说明,和简单的配置例子,开发例子,及JSF2.0的所有标签的详细分析。
JSF2.0实战 - 10、自定义Ajax更新方式源代码
JSF2.0_开发入门JSF2.0_开发入门JSF2.0_开发入门JSF2.0_开发入门JSF2.0_开发入门JSF2.0_开发入门JSF2.0_开发入门
jsf2.0+richfaces4.2.3需要的jar包
使用 Netbeans 开发JSF 2.0,使用Primefaces 及JPA ,一步一步指导如何开发
个人收集的JSF2.0的开发简介 共64页 讲解了绝大部份JSF2.0的新特性
JSF2.0系列简介.doc 和 文档想配的源代码,后面的AJAX的例子做,留给你们自己完成.希望能帮助到大家
利用JSF2.0和servlet3.0做的上传的例子,并实现单个文件上传的组件,虽然有些小限制,但是对单个上传功能完全可以实现。花了一整天的时间来研究啊,不容易!顶起吧。有什么想法请发表评论
在Java EE 6中使用JSF 2.0简化页面制作 在Java EE 6中使用JSF 2.0简化页面制作 在Java EE 6中使用JSF 2.0简化页面制作
JSF JSF2.0 Ajax javaweb JSF与Ajax交互实现
JSF2.0 Tutorial,总共18个章节,详细介绍了jsf2.0的overview, new feature, managedbean, el, ajax,spring集成等,并配source code.由于文件比较大切分成了3个压缩包。
jsf2.0 hibernate3.2 spring2.5环境所有jar包,包括richfaces mysql log4j 在eclipse里手动配置环境经常会因jar出现种种问题,我把完整的jsf2.0 spring2.5 hibernate3整合所有jar传上来希望有用 如果有需要我会传上一...
jsf2.0 dataTable单行修改例子,包含了jsf dataTable修改一行数据的方法