jsf1.2 和 jsf2.0 的区别
2013-12-22 21:18
393 查看
在这里给大家总结一下jsf1.2和jsf2.0的区别:
1 比较显著的特点是Bean可以通过注解的方式来配置,少写很多xml配置文件。在jsf1.2中Bean都是通过配置文件face-config.xml声明的,而在jsf2.0里Bean可以直接通过注解@MangeBean,@sessionScoped来声明。
2 在jsf1.2中创建页面的时候一般页面的格式是。jsp或html页面,在jsf2.0中推荐使用.xhtml在创建页面。如果在页面中用到那种jsf的标签只要在页面的开通声明标签的命名空间就可以了。例如:
在jsf1.2中标签的声明是这样的
在jsf2.0中标签的声明变成了这个样子
3 在jsf2.0中导航规则也变的更加简洁。在jsf1.2中到跳转那个页面是必须通过写在faces-config.xml 中的 navigation rule来进行跳转的,在jsf2.0中你可以直接通过<h:commandButton>的 action 属性后边加上要跳转的页面的名字来进行跳转的。当然负责的导航规则也是可以通过navigation
rule来进行的。可以作为书签的URL 在JSF 1.x时代,一切都是POST,浏览器只能回退一步,不可以另存为书签,JSF 2.x 支持Get操作,增加新标签 h:button, h:link,视图参数,但请求进入时绑定到beans, 可以绑定到下一个请求.
4 在jsf2.0中新加了创建聚合标签的功能,可以把以有的标签组合到一块创建一个新的jsf标签。通过这个特性,用户可以通过聚合组件重构已有的视图,使它成为一个可以重用的聚合标签,并且可以为聚合标签设置各种属性。
代码示例:
5 对Ajax的完善。在jsf1.2中已经开始有对Ajax框架式的实现,他主要是通过<a4j:....>标签来实现的,而<a4j:....>是richsfaces中的东西,所以jsf1.2对Ajax的支持并不完善,而在jsf2.0中jsf推出了自己的一套Ajax标签,<f:ajax>,比较方便的使用Ajax。
示例如下:
6 在jsf2.0中拥有一个核心错误处理器,它汇集了几乎所有的报错,所以用户可以jsf组件很好的构造一个特定的jsf错误页。
7 在jsf1.2中两次请求之间会浪费大量的内存空间,而在jsf2.0中通过优化标签实现的api(flash scope)大大减少了内存的浪费,当然这些在我们不接触源码的情况下是看不到的。
1 比较显著的特点是Bean可以通过注解的方式来配置,少写很多xml配置文件。在jsf1.2中Bean都是通过配置文件face-config.xml声明的,而在jsf2.0里Bean可以直接通过注解@MangeBean,@sessionScoped来声明。
2 在jsf1.2中创建页面的时候一般页面的格式是。jsp或html页面,在jsf2.0中推荐使用.xhtml在创建页面。如果在页面中用到那种jsf的标签只要在页面的开通声明标签的命名空间就可以了。例如:
在jsf1.2中标签的声明是这样的
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
在jsf2.0中标签的声明变成了这个样子
<html xmlns=”http://www.w3.org/1999/xhtml” xmlns:f=”http://java.sun.com/jsf/core” xmlns:h=”http://java.sun.com/jsf/html”>
3 在jsf2.0中导航规则也变的更加简洁。在jsf1.2中到跳转那个页面是必须通过写在faces-config.xml 中的 navigation rule来进行跳转的,在jsf2.0中你可以直接通过<h:commandButton>的 action 属性后边加上要跳转的页面的名字来进行跳转的。当然负责的导航规则也是可以通过navigation
rule来进行的。可以作为书签的URL 在JSF 1.x时代,一切都是POST,浏览器只能回退一步,不可以另存为书签,JSF 2.x 支持Get操作,增加新标签 h:button, h:link,视图参数,但请求进入时绑定到beans, 可以绑定到下一个请求.
<f:metadata> <f:viewParam name="q" value="#{quizBean.currentProblem}" /> <f:viewParam name="score" value="#{quizBean.score}" /> </f:metadata> <h:link outcome="#{quizBean.skipOutcome}" value="Skip"includeViewParams="true"> <f:param name="q" value="#{quizBean.currentProblem + 1}" /> </h:link>
4 在jsf2.0中新加了创建聚合标签的功能,可以把以有的标签组合到一块创建一个新的jsf标签。通过这个特性,用户可以通过聚合组件重构已有的视图,使它成为一个可以重用的聚合标签,并且可以为聚合标签设置各种属性。
代码示例:
<composite:interface> <composite:actionSource name="form:loginAction"/> ... </composite:interface> <composite:implementation> <h:form...> ... <h:commandButton id="loginAction" value="Login" action="welcome"/> </h:form> </composite:implementation>
5 对Ajax的完善。在jsf1.2中已经开始有对Ajax框架式的实现,他主要是通过<a4j:....>标签来实现的,而<a4j:....>是richsfaces中的东西,所以jsf1.2对Ajax的支持并不完善,而在jsf2.0中jsf推出了自己的一套Ajax标签,<f:ajax>,比较方便的使用Ajax。
示例如下:
<h:commandButton value="Update"> <f:ajax execute="input1 input2" render="output1"/> </h:commandButton>
6 在jsf2.0中拥有一个核心错误处理器,它汇集了几乎所有的报错,所以用户可以jsf组件很好的构造一个特定的jsf错误页。
7 在jsf1.2中两次请求之间会浪费大量的内存空间,而在jsf2.0中通过优化标签实现的api(flash scope)大大减少了内存的浪费,当然这些在我们不接触源码的情况下是看不到的。
相关文章推荐
- Converting a JSF 1.2 application to JSF 2.0 - Facelets and Ajax
- struts2.0和struts1.2的区别的第一次小体会(struts标签)
- JSF 2.0检验总结之:同一个JBOSS 5.1.0 jsf 2.0(for primefaces) +JSF 1.2 同时运行的总结
- spring1.2,2.0版本区别
- memcache实战之二 :客户端 Memcached Providers 1.2 for .net 2.0 的安装与调试以及实例,curr_items 和 total_items的区别
- spring 1.2 和 Spring 2.0的区别配置信息
- Converting a JSF 1.2 application to JSF 2.0 - Facelets and Ajax
- 蓝牙芯片1.1和1.2以及2.0各个规格之间的区别(手机开发)
- Converting a JSF 1.2 application to JSF 2.0 - Facelets and Ajax
- Wap1.2, Wap 2.0 Select Multiple 浏览器处理的区别
- jsf1.2+spring2.0+hibernate3.2+ajax4jsf1.1.1实现的petStore
- Sample Application using JSF, Spring 2.0, and Java Persistence APIs
- Vue.js 2.0 独立构建和运行时构建的区别
- vue2.0与1.0的区别
- spring2.0,spring2.5版本区别
- JSF2.0——编写复合组件更容易
- JSF 中h:link 和h:commandLink和 h:outputLink之间的区别
- SSH框架代码(struts1.2+spring2.0+hibernate3.2)第二部分
- jsf1.2 VS tomcat5.5
- JSF中action 和actionListener的区别