jsf1.2 和 jsf2.0 的区别

      在这里给大家总结一下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中标签的声明是这样的

<%@ 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)大大减少了内存的浪费,当然这些在我们不接触源码的情况下是看不到的。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值