学习Facelets的一些体会!
2012-04-13 13:51
169 查看
互联网日新月异的发展,促进了web开发语言也不断的简单化,高效化,可移植化。作为下一代构建基于构件的web应用的新标准java框架,JSF已经在默默的替换了一些旧的框架。由金蝶软件封装的OperaMasks受到了很多开发者的青睐。
OperaMasks:按我的说法,就是对JSF进行了封装可扩展,如在原来的基础上进行重构,展示构件更多了;配置文件更简略了。
Facelets,相对于JSP而言,更适合表现构件化页面的显示技术,在JSF2.0规范中,也是默认的显示技术。下面说说Facelets在OperaMasks框架下使用以及用途。
首先是配置,当然你要导入对应的jar包,然后在web.xml文件中添加:
<context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value></context-param>
这句话的意思是默认采用XHTML来实现视图 XHTML:是可扩展的HTML
在faces-config.xml加上:
<application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler></application>
这句话的意思是告诉OperaMasks用Facelets作为view的处理者。
在配置方面就这些!
其次,介绍下模板
我们都知道模板的概念,无非就是把公共的东西抽离出来,在需要的地方用模板从而达到简化开发的作用,Facelets下的模板也是如此,举下面的例子,相信大家都明白了
<!-- 模版页面文件:template.xhtml -->
<span class="muban">
<c:forEach begin="1" end="10">
<ui:insert /> <br />
</c:forEach>
</span>
<!-- 模版适配页面文件 -->
<ui:composition template="template.xhtml">测试模板页面 <h:outputText value="#{user.name}" />!
</ui:composition>
访问适配页面时,如下:
<span class="muban">
<c:forEach begin="1" end="10">测试模板页面<h:outputText value="#{user.name}" />! <br />
</c:forEach>
</span>
一目了然,<ui:insert />:模板中要被适配页面替换的内容,<ui:composition template="template.xhtml">:要嵌入的模板文件。
当然,模板里还有很多别的用途,如传参等等。
第三,复合构件
如其名,就是在现有构件的基础上重新组装和定制的构件。用复合构件好处:
1,精简代码
2,构件重用
3,方便加其他的功能
配置:
<!-- mycomponent.taglib.xml--><!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"><facelet-taglib> <namespace>http://www.mycompany.com/aom</namespace> <tag>
<tag-name>fuhegoujian</tag-name> <source>fuhegoujian.xhtml</source> </tag></facelet-taglib>
DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
http://java.sun.com/dtd/web-facesconfig_1_0.dtd 引入规范定义文件
<namespace>http://www.mycompany.com/aom</namespace>:定义复合构件的命名空间
<tag-name>fuhegoujian</tag-name>:定义复合构件的构件名称
<source>fuhegoujian.xhtml</source>:定义复合构件路径
web.xml:初始化构件
<!-- web.xml--><context-param> <param-name>facelets.LIBRARIES</param-name> <param-value> /WEB-INF/facelets/tags/mycomponent.taglib.xml </param-value></context-param>
定义构件:
<!--fuhegoujian.xhtml -->
<ui:composition>
......
</ui:composition>
引入使用:
<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
xmlns:w="http://www.apusic.com/jsf/widget" xmlns:layout="http://www.apusic.com/jsf/layout"
xmlns:my="http://www.mycompany.com/aom" xmlns:ui="http://java.sun.com/jsf/facelets" renderKitId="AJAX">
....
<my:fuhegoujian fieldName="title"
backingBean="#{testBean}"/>
.....
先介绍这么多,吼吼!
OperaMasks:按我的说法,就是对JSF进行了封装可扩展,如在原来的基础上进行重构,展示构件更多了;配置文件更简略了。
Facelets,相对于JSP而言,更适合表现构件化页面的显示技术,在JSF2.0规范中,也是默认的显示技术。下面说说Facelets在OperaMasks框架下使用以及用途。
首先是配置,当然你要导入对应的jar包,然后在web.xml文件中添加:
<context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value></context-param>
这句话的意思是默认采用XHTML来实现视图 XHTML:是可扩展的HTML
在faces-config.xml加上:
<application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler></application>
这句话的意思是告诉OperaMasks用Facelets作为view的处理者。
在配置方面就这些!
其次,介绍下模板
我们都知道模板的概念,无非就是把公共的东西抽离出来,在需要的地方用模板从而达到简化开发的作用,Facelets下的模板也是如此,举下面的例子,相信大家都明白了
<!-- 模版页面文件:template.xhtml -->
<span class="muban">
<c:forEach begin="1" end="10">
<ui:insert /> <br />
</c:forEach>
</span>
<!-- 模版适配页面文件 -->
<ui:composition template="template.xhtml">测试模板页面 <h:outputText value="#{user.name}" />!
</ui:composition>
访问适配页面时,如下:
<span class="muban">
<c:forEach begin="1" end="10">测试模板页面<h:outputText value="#{user.name}" />! <br />
</c:forEach>
</span>
一目了然,<ui:insert />:模板中要被适配页面替换的内容,<ui:composition template="template.xhtml">:要嵌入的模板文件。
当然,模板里还有很多别的用途,如传参等等。
第三,复合构件
如其名,就是在现有构件的基础上重新组装和定制的构件。用复合构件好处:
1,精简代码
2,构件重用
3,方便加其他的功能
配置:
<!-- mycomponent.taglib.xml--><!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"><facelet-taglib> <namespace>http://www.mycompany.com/aom</namespace> <tag>
<tag-name>fuhegoujian</tag-name> <source>fuhegoujian.xhtml</source> </tag></facelet-taglib>
DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
http://java.sun.com/dtd/web-facesconfig_1_0.dtd 引入规范定义文件
<namespace>http://www.mycompany.com/aom</namespace>:定义复合构件的命名空间
<tag-name>fuhegoujian</tag-name>:定义复合构件的构件名称
<source>fuhegoujian.xhtml</source>:定义复合构件路径
web.xml:初始化构件
<!-- web.xml--><context-param> <param-name>facelets.LIBRARIES</param-name> <param-value> /WEB-INF/facelets/tags/mycomponent.taglib.xml </param-value></context-param>
定义构件:
<!--fuhegoujian.xhtml -->
<ui:composition>
......
</ui:composition>
引入使用:
<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
xmlns:w="http://www.apusic.com/jsf/widget" xmlns:layout="http://www.apusic.com/jsf/layout"
xmlns:my="http://www.mycompany.com/aom" xmlns:ui="http://java.sun.com/jsf/facelets" renderKitId="AJAX">
....
<my:fuhegoujian fieldName="title"
backingBean="#{testBean}"/>
.....
先介绍这么多,吼吼!
相关文章推荐
- jQuery学习的一些体会
- javascript学习过程中的一些体会和重点(1)
- 学习H5+CSS3+JS的一些心得体会
- 学习asp.net的一些心德体会
- 关于学习linux的一些心得体会
- 学习asp.net的一些心德体会(2)
- 一些汇编学习的体会
- 学习 Mule ESB 的一些心得体会
- 学习字符集的一些体会
- 敏捷学习与实践之后的一些体会
- 近几年学习Visual C++及MFC的一些体会和想法(待完善)
- 学习Xfire的一些体会
- 学习JAVA的一些体会
- 关于C++的一些学习体会!
- 3G机遇和学习手机开发的一些体会[转]
- cxf的一些学习体会
- 最近学习的一些体会
- 学习SQL的一些心得体会!
- 转:一些关于目标追踪的学习体会
- 学习IP地址的一些体会总结