读书人

JSF2.0的新特性引见

发布时间: 2012-10-25 10:58:58 作者: rapoo

JSF2.0的新特性介绍

JSF 1.x

??? * Java EE 标准 (JSR 127, 252)
??? * 面向组件的 web框架
??? * 扩展性较好
??? * 有很多厂商工具支持

JSF 2.0
??? * Java EE 6 (JSR 314)的一部分
??? * 减少XML配置
??? * 更好的错误处理机制
??? * Ajax支持
??? * GET请求支持
??? * 更容易开发component
??? * 增加资源resource处理机制

?

更好的导航设计
      <h:commandButton value="Press me!" action="next"/>      <navigation-rule>        <navigation-case>          <from-outcome>next</from-outcome>          <to-view-id>/next.jsp</to-view-id>        </navigation-case>      </navigation-rule>
?
<h:commandButton value="Press me!" action="next"/> //自动对应到页面了
?受托管Bean采用Annotation标注
<h:inputText value="#{login.name}"/>
?
      <managed-bean>        <managed-bean-name>login</managed-bean>        <managed-bean-class>com.corejsf.Login</managed-bean>        <managed-bean-scope>session</managed-bean-scope>      </managed-bean>
?
      @ManagedBean @SessionScoped      public class Login { ... }
采用Facelets作为界面层
??? * Facelets是第三方扩展 (Jacob Hookom)
??? * 成为标准的一部分
??? * JSF中首选视图Handler
??? * 减少JSP的混乱和复杂
??? * 更好的错误处理机制
??? * Page composition可以作为书签的URL
??? * 在JSF 1.x时代,一切都是POST
??? * 浏览器只能回退一步
??? * 不可以另存为书签
??? * JSF 2.x 支持Get操作
??? * 增加新标签 h:button, h:link
??? * 视图参数
????????? o 但请求进入时绑定到beans
????????? o 可以绑定到下一个请求
    ? <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>
?
?
增加组合组件概念
??? * 有简单组件构成
??? * 可以绑定validators, listeners
      <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>
?比较方便地使用AJAX:
<h:commandButton value="Update">  <f:ajax execute="input1 input2" render="output1"/></h:commandButton>
???
资源加载
????????? o 标准resources directory
????????? o h:graphicImage, h:outputStylesheet, h:outputScript的 library, name attributes
??????????? <h:outputStylesheet library="css" name="styles.css" />

????????? o 改善i18n
??? * 增加新的托管bean范围
????????? o View scope
????????? o Flash
??? * 14种新的时间
????????? o 最常用的包括: preRenderView, postValidate
??????????? <f:event type="postValidate" listener="#{user.validate}"/>

读书人网 >JavaScript

热点推荐