SlideShare ist ein Scribd-Unternehmen logo
1 von 86
Downloaden Sie, um offline zu lesen
Exadel



RichFaces 4 Webinar Series

Webinar #2:
RichFaces 3 to RichFaces 4 —
A Class in Moving Up

May 11, 2011

Max Katz
Charley Cowens
http://exadel.com/web/portal/webinars
Exadel



RichFaces 4 Webinar
Schedule


June 15, 2011
RichFaces 4 – New and Advanced
Features
Exadel




Max Katz
● Senior   Systems Engineer
● JSF,RichFaces, Java EE consulting,
 and training
● Manages exadel.org – Exadel's open
 source projects and community
● Community    manager for gotiggr.com
 – tool for creating and sharing
 interactive web and mobile HTML
 prototypes
Exadel




                                          4
                        Summer 2011




    Author of             Lead-author of
Practical RichFaces   Practical RichFaces, 2/e
     (Apress)           (Apress, July 2011)
Exadel




Exadel is a global software
engineering company.
● Founded in 1998,


  headquarters in San Francisco
  Bay Area
● 7 development offices in


  Europe
● 350+ employees
Exadel




What Exadel Does
Services
●   Professional services, rich enterprise
    application development, Eclipse
    development, custom rich component
    development, mobile development, training
Products
●   Open source with JBoss: RichFaces, JBoss
    Tools/JBoss Developer Studio; exadel.org:
    Flamingo, Fiji, jsf4birt, JavaFX Plug-in for
    Eclipse; gotiggr.com– interactive Web and
    mobile HTML prototypes
Exadel




The Plan Is Simple


1) Review the New RichFaces 4

2) Moving up from RichFaces
3 to RichFaces 4
Exadel




RichFaces 4 is a lightweight,
open source framework for
          JSF 2
Exadel




RichFaces 4 – rich JSF framework
   ● UI components

     ◦ a4j:* tag library (core)
     ◦ rich:* tag library (UI)
     ◦ Components' JavaScript API
   ● Skins
   ● Client-side   validation (Bean Validation
    based)
   ● CDK –   Component Development Kit
Exadel




RichFaces 4


  100% built on top of JSF2,
 just extends functionality in
            JSF 2
Exadel




RichFaces 4


 JavaScript is now entirely
based on the popular jQuery
          library
Exadel




RichFaces 4
● All components are reviewed for
 consistency, usability
● Redesigned following    semantic
 HTML principles
● Server-side
           and client-side
 performance optimization
● Strict   code clean-up and review
Exadel




RichFaces 4


     Zero-configuration.
Just drop RichFaces into the
        application.
Exadel




RichFaces 4


 New client-side validation
 based on Bean Validation
         (JSR 303)
Exadel




RichFaces 4


  New, and easy to use CDK
   (Component Development Kit),
 allows quickly to build your
own custom rich components
Exadel




RichFaces 4


Run on: Tomcat 6/7, Resin,
JBoss AS 6/7, GlassFish 3.x,
             WebLogic
(run on any server when JSF 2 application
            can be deployed)
Exadel




RichFaces 4


 Run on: Google App Engine
   (GAE), Amazon EC2,
         CloudBees
Exadel




RichFaces 4


   JSF implementations:
    Mojarra or Myfaces
Exadel




RichFaces 4


        Any browser
Exadel




RichFaces 4


  Tooling support through
   JBoss Tools, IntelliJ,
         NetBeans
Exadel




 RichFaces versions


       Version             JSF 1.1       JSF 1.2   JSF 2


RichFaces 3.1.x              •
RichFaces 3.3.3*                            •       •
RichFaces 4                                         •
* Note: RichFaces 3.3.3 has basic JSF 2 support
Exadel




RichFaces 4


 Let's quickly look at some
 RichFaces features in more
           detail...
Exadel




RichFaces 4 core – sending
an Ajax request
a4j:ajax
a4j:commandButton
a4j:commandLink
a4j:jsFunction
a4j:poll
a4j:push
Exadel




      <a4j:commandButton/Link>
        – built-in Ajax behavior


/* RichFaces button */
<a4j:commandButton value="Save"
     render="output"
     action="#{bean.action}" />
Exadel




      <a4j:jsFunction> – fire Ajax
      request from any JavaScript
      function, HTML event
<table>
   ...
   <td onmouseover="update('yellow')"/>
   ...
</table>

<h:form>
 <a4j:jsFunction name="update"
      action="#{bean.change}" render="...">
   <a4j:param value="param1" assignTo="#{bean.color}"/>
 </a4j:jsFunction>
</h:form>
Exadel



      <a4j:poll> – periodically
      send an Ajax request

<a4j:poll interval="1000"
          action="#{bean.count}"
          render="output"
          enabled="#{bean.pollEnabled}" />

<h:panelGrid id="output">
...
</h:panelGrid>
Exadel




      <a4j:push>
       ● Server-side  events are pushed to
         client using Comet or WebSockets.
       ● Implemented    using Atmosphere
       ● Providesexcellent integration with
         EE containers, and advanced
         messaging services

<a4j:push address="topic@chat"
     ondataavailable="alert(event.rf.data)" />
Exadel




RichFace 4 core – advanced
rendering features
<a4j:outputPanel>
Exadel



      <a4j:outputPanel> – auto
      rendered panel

<h:selectOneMenu value="#{bean.fruit}">
   <a4j:ajax listener="#{bean.change}"/>
</<h:selectOneMenu>


<a4j:outputPanel ajaxRendered="true">
   <h:panelGrid>
      ...
   </h:panelGrid>                          Rendered on every
</a4j:outputPanel>                         Ajax request
Exadel




RichFace 4 core – advanced
execute features
<a4j:region>
Exadel



<a4j:region> – declaratively
define execute region

<h:form>
 <a4j:region>
   <h:inputText />
   <h:inputText />
   <a4j:commandButton />
 <a4j:region>
</h:form>
Exadel




RichFace 4 core – more
advanced features and tags
Client queue
a4j:status
a4j:param
a4j:log
Exadel




RichFaces queue
● JSF2 has very basic queue
 functionality
● RichFaces   enhancements
  ◦ Combining requests from the same or
    different components
  ◦ Setting request delay
  ◦ Ignoring “stale” responses
Exadel



      <a4j:status> – Ajax request
      status



<a4j:status name="ajaxStatus">
  <f:facet name="start">
    <h:graphicImage value="ajaxStatus.jpg"/>
  </f:facet>
</a4j:status>

<h:form>
   <a4j:commandButton status="ajaxStatus"/>
</h:form>
Exadel




      <a4j:param>
       ● Similar to <f:param>   but simpler as it
         also assigns the value to a bean
         property automatically
<a4j:commandButton value="Save">
   <a4j:param name="#{bean.product}" value="1009"/>
</a4j:commandButton>

@ManagedBean
public class Bean {
   private String product;
   // setter and getter
}
Exadel



<a4j:log> – Ajax request
information
● Levels:

  ◦ debug, info, warn, error
Exadel




RichFaces UI components
● Output, panels
● Input
● Menu
● Data iteration
● Tree
● Drag   and drop
● Client   side validation
● Miscellaneous
Exadel
Exadel




All RichFaces data iteration
components support partial
         updates
Exadel




             Partial table update

                         render="@column"
                                                              render="@header"

render="@row"
                                                               render="@body"

                                                              render="@footer"



                                            render="cellId"
 To render from outside the table:
 render="tableId@header"
 render="tableId@body"
 render="tableId@footer"
Exadel




              Partial table update
render="tableId:rows(bean.rowsSet)"




render="tableId:rows(bean.rowsSet):cellId"
Exadel




Client-side validation based
    on Bean Validation
         (JSR 303)

    New in RichFaces 4
Exadel




    RichFaces client validation
        <rich:validator>

public class Bean {
  @Pattern(regexp="...")
  private String email;
}


<h:inputText id="email" value="#{bean.email}">
   <rich:validator/>
</h:inputText>
<rich:message for="email"/>
Exadel



Many RichFaces components
provide client-side JavaScript API
<rich:popupPanel> JavaScript API
Method name            Description
                       Return the top co-ordinate for the position of
getTop()
                       the pop-up panel.
                       Return the left co-ordinate for the position of
getLeft()
                       the pop-up panel.
                       Move the pop-up panel to the co-ordinates
moveTo(top,left)
                       specified with the top and left parameters.
                       Resize the pop-up panel to the size specified
resize(width,height)
                       with the width and height parameters.
show()                 Show the pop-up panel.
hide()                 Hide the pop-up panel.
Exadel



 Using #rich:component() to
 show/hide pop-up panel
<input type="button"
       onclick="#{rich:component('popup')}.show();"
       value="Open" />

<rich:popupPanel id="popup">
   <h:outputLink value="#"
        onclick="#{rich:component('popup')}.hide();
           return false;">
          <h:outputText value="Close"/>
    </h:outputLink>
</rich:popupPanel>
Exadel




Skins
Exadel




Skins
● Lightweight   extension on top of CSS
● Change
       look and feel of all rich
 component with a few minor changes
● Apply to standard JSF   and HTML
 tags
Exadel




Ready-to-use skins
● classic       <context-param>
                  <param-name>org.richfaces.skin</param-name>
● wine            <param-value>ruby</param-value>
                </context-param>
● blueSky
● ruby
● emeraldTown
● deepMarine
● plain
● japanCherry
Exadel




Moving from RichFaces 3 to
      RichFaces 4...
Exadel




Things to know before
     upgrading
Exadel




JSF 1.x to JSF 2


 ● Migrating
           to RichFaces 4 will
  automatically mean you are also
  upgrading to JSF 2
Exadel




Yey! No more JSP!


 ● JSP   no longer supported
 ● Must   use Facelets with RichFaces 4
Exadel




Seam

● Seam   2 doesn't work with JSF 2
● Consider
         using Seam 3 with
 RichFaces 4
Exadel




 RichFaces filter configuration in
web.xml file is no longer required


Just drop RichFaces Jars into the
          application


 There are still optional context
    parameters (skins, etc)
Exadel




a4j:* tab library changes
Exadel




<a4j:ajax> is 100% based on the
standard <f:ajax> behavior:

      RichFaces 3           RichFaces 4

     <a4j:support>          <a4j:ajax>


But, the concepts stay the same:
1)How to send an Ajax request
2)Partial view processing
3)Partial view rendering
Exadel




Important core attribute changes
          RichFaces 3            RichFaces 4
reRender                render

event=onclick           event=click

limitToList             limitRender

ajaxSingle              execute=@this


                        execute
process                 @all, @form, @this, @none, id's,
                        EL, @region
Exadel




       RichFaces 3            RichFaces 4
<a4j:commandButton>,   <a4j:commandButton>,
<a4j:commandLink>      <a4j:commandLink>
<a4j:poll>             <a4j:poll>

<a4j:jsFunction>       <a4j:jsFunction>

<a4j:status>           <a4j:status>
<a4j:log>              <a4j:log>
Exadel




    RichFaces 3                 RichFaces 4

<a4j:status>        <a4j:status>

<a4j:log>           <a4j:log>

<a4j:mediaOutput>   <a4j:mediaOutput>
Exadel




Other changes:

      RichFaces 3             RichFaces 4

<a4j:actionParam>   <a4j:param>
                    <a4j:push>
<a4j:push>
                    Component completely redesigned

<a4j:region>        <a4j:region>

                    <a4j:actionListener>
                    Registers a listener on a
N/A
                    component and allows simple
                    method binding
Exadel




No longer in RichFaces 4 as now part of
JSF 2:
● <a4j:loadScript>
● <a4j:loadStyle>
● <a4j:keepAlive>

No longer in RichFaces 4:
● <a4j:form>
● <a4j:ajaxListener>
Exadel


To redefine queue setting by individual
components, a new <a4j:attachQueue> tag
was introduced:
<a4j:queue />
...
<a4j:commandButton>
   <a4j:attachQueue requestDelay="1000"
        requestGroupingId="ajaxGroup" />
</a4j:commmandButton>



      RichFaces 3            RichFaces 4

<a4j:queue>         <a4j:queue>

N/A                 <a4j:attachQueue>
Exadel




rich:* tag library changes
Exadel


Rich inputs
         RichFaces 3                RichFaces 4

<rich:calendar>            <rich:calendar>

<rich:inplaceInput>        <rich:inplaceInput>

<rich:inplaceSelect>       <rich:inplaceSelect>

<rich:inputNumberSlider>   <rich:inputNumberSlider>
<rich:inputNumerSpinner>   <rich:inputNumerSpinner>

<rich:suggestionBox>       <rich:autocomplete>

<rich:comboBox>            Merged with
                           <rich:autocomplete>
N/A                        <rich:select>
Exadel




Inputs that didn't make it...
       RichFaces 3          RichFaces 4

<rich:colorPicker>   Not in Final, planned

<rich:editor>        Not in Final, planned
Exadel


Rich output/panels
          RichFaces 3                   RichFaces 4
<rich:panel>                  <rich:panel>

<rich:modalPanel>             <rich:popupPanel>

<rich:panelBar>               <rich:accordion>

<rich:simpleTogglePanel>      <rich:collapsiblePanel>

<rich:tab>, <rich:tabPanel>   <rich:tab>, <rich:tabPanel>

<rich:togglePanel>            <rich:togglePanel>

<rich:toolBar>                <rich:toolbar>

<rich:progressBar>            <rich:progressBar>

<rich:toolTip>                <rich:tooltip>
Exadel




Outputs that didn't make it...
       RichFaces 3          RichFaces 4

<rich:paint2D>       Possible with JSF 2

<rich:separator>     Use <hr/> with styling
                     Doesn't satisfy semantic
<rich:spacer>
                     markup principles
Exadel




Rich selects/ordering
       RichFaces 3           RichFaces 4

<rich:orderingList>   Not in Final, planned

<rich:listShuttle>    Not in Final, planned

<rich:pickList>       Not in Final, planned
Exadel




Rich menu
       RichFaces 3           RichFaces 4

<rich:toolBar>        <rich:toolBar>

<rich:dropDownMenu>   <rich:toolBar>

<rich:panelMenu>      <rich:panelMenu>
<rich:contextMenu>    Not in Final, planned.
Exadel


Rich data iteration
        RichFaces 3                    RichFaces 4

<rich:dataTable>             <rich:dataTable>

<rich:dataGrid>              <rich:dataGrid>

<rich:datascroller>          <rich:dataScroller>

<a4j:repeat>                 <a4j:repeat>
<rich:extendedDataTable>
                             <rich:extendedDataTable>
<rich:scrollableDataTable>
<rich:dataList>
<rich:dataOrderingList>      <rich:list>
<rich:dataDefintionList>
N/A                          <rich:collapsibleSubTable>
Exadel




Rich data iteration didn't make it
         RichFaces 3               RichFaces 4

<rich:columns>            Not in Final

<rich:subTable>           Not in Final

<rich:dataFilterSlider>   Not in Final
Exadel




Validation
       RichFaces 3             RichFaces 4
                        Client validation:
<rich:ajaxValidator>
                        <a4j:validator>
                        No longer needed. Support
<rich:beanValidator>
                        via JSF 2
<rich:graphValidator>   <rich:graphValidator>

<rich:message>          <rich:message>
<rich:messages>         <rich:messages>
Exadel




Rich trees

Pretty much all version 3
functionality is in RichFaces 4
Exadel




Rich drag and drop

Pretty much all version 3
functionality is in RichFaces 4
Exadel




Rich miscellaneous
      RichFaces 3                RichFaces 4

<rich:componentControl>   <rich:componentControl>

<rich:jQuery>             <rich:jQuery>
                          <rich:hashParam>
                          Groups parameters into
N/A                       hash parameter to be
                          passed to components via
                          JavaScript API.
Exadel



Rich miscellaneous that didn't make it
       RichFaces 3           RichFaces 4

<rich:effect>         Not in Final

<rich:gmap>           Not in Final, planned

<rich:virtualEarth>   Not in Final, planned
                      Available as custom
<rich:insert>         component. See RichFaces
                      components showcase.
<rich:hotKey>         Not in Final. Use jQuery.
                      Not in Final. Use YUI or
Layout components
                      HTML.
Exadel




A note on Not in Final
Component is not in 4.0.0 but many will
be added in 4.x release


Get involved in RichFaces community,
and let everyone know what you want!
Exadel




Skins

Skins probably had the least
changes
Exadel




Context parameter to set default
application skin
      RichFaces 3            RichFaces 4

org.richfaces.SKIN
                      org.richfaces.skin
org.ajax4jsf.SKIN
Exadel




Skins in RichFaces 4
       Migrated              Not migrated
●blueSky               ●laguna
●emeraldTown           ●darkX

●ruby                  ●glassX

●classic

●japanCherry

●wine

●deepMarine

●NULL

●DEFAULT

●plain
Exadel



     Where can I try the new
         RichFaces 4?
http://livedemo.exadel.com/richfaces4-demo
Exadel




        How can we help with RichFaces
● Web development
 with RichFaces
                                     Training      Days
● Version   3 to 4 migration   JSF 1.2, 2          1-2
● Performance    tune-up       RichFaces 3, 4      1-2
                               JSF and RichFaces   2-3
● Custom    component          RichFaces 3 to 4    1-2

 development
● On-site training
Exadel




That's it for RichFaces, there
 is one more thing I want to
           show you.
Exadel




Create your first interactive prototype at http://gotiggr.com
Exadel




Tiggr (gotiggr.com) is a web
application for building and
sharing interactive web and
 mobile HTML prototypes
Exadel




        max@exadel.com

Thank   @maxkatz
 you!
        mkblog.exadel.com

        gotiggr.com

Weitere ähnliche Inhalte

Was ist angesagt?

A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4balunasj
 
Securing JSF Applications Against the OWASP Top Ten
Securing JSF Applications Against the OWASP Top TenSecuring JSF Applications Against the OWASP Top Ten
Securing JSF Applications Against the OWASP Top TenDavid Chandler
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Arun Gupta
 
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Arun Gupta
 
RichFaces 4 Component Deep Dive - JAX/JSFSummit
RichFaces 4 Component Deep Dive - JAX/JSFSummitRichFaces 4 Component Deep Dive - JAX/JSFSummit
RichFaces 4 Component Deep Dive - JAX/JSFSummitbalunasj
 
Lecture 4: JavaServer Pages (JSP) & Expression Language (EL)
Lecture 4:  JavaServer Pages (JSP) & Expression Language (EL)Lecture 4:  JavaServer Pages (JSP) & Expression Language (EL)
Lecture 4: JavaServer Pages (JSP) & Expression Language (EL)Fahad Golra
 
Escape from the automation hell
Escape from the automation hellEscape from the automation hell
Escape from the automation hellNikita Simonovets
 
Unit testing after Zend Framework 1.8
Unit testing after Zend Framework 1.8Unit testing after Zend Framework 1.8
Unit testing after Zend Framework 1.8Michelangelo van Dam
 
Import export.odp
Import export.odpImport export.odp
Import export.odpOro Inc.
 
Php Unit With Zend Framework Zendcon09
Php Unit With Zend Framework   Zendcon09Php Unit With Zend Framework   Zendcon09
Php Unit With Zend Framework Zendcon09Michelangelo van Dam
 
AtlasCamp 2011: Confluence 4 and Beyond
AtlasCamp 2011: Confluence 4 and BeyondAtlasCamp 2011: Confluence 4 and Beyond
AtlasCamp 2011: Confluence 4 and BeyondSherif Mansour
 
Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2Sumy PHP User Grpoup
 
API Development with Laravel
API Development with LaravelAPI Development with Laravel
API Development with LaravelMichael Peacock
 
Using the Features API
Using the Features APIUsing the Features API
Using the Features APIcgmonroe
 
XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011Tim Clark
 

Was ist angesagt? (20)

A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
 
Securing JSF Applications Against the OWASP Top Ten
Securing JSF Applications Against the OWASP Top TenSecuring JSF Applications Against the OWASP Top Ten
Securing JSF Applications Against the OWASP Top Ten
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
 
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
 
#JavaFX.forReal()
#JavaFX.forReal()#JavaFX.forReal()
#JavaFX.forReal()
 
RichFaces 4 Component Deep Dive - JAX/JSFSummit
RichFaces 4 Component Deep Dive - JAX/JSFSummitRichFaces 4 Component Deep Dive - JAX/JSFSummit
RichFaces 4 Component Deep Dive - JAX/JSFSummit
 
第二回Salesforce勉強会
第二回Salesforce勉強会第二回Salesforce勉強会
第二回Salesforce勉強会
 
Lecture 4: JavaServer Pages (JSP) & Expression Language (EL)
Lecture 4:  JavaServer Pages (JSP) & Expression Language (EL)Lecture 4:  JavaServer Pages (JSP) & Expression Language (EL)
Lecture 4: JavaServer Pages (JSP) & Expression Language (EL)
 
Escape from the automation hell
Escape from the automation hellEscape from the automation hell
Escape from the automation hell
 
JSF 2.0 Preview
JSF 2.0 PreviewJSF 2.0 Preview
JSF 2.0 Preview
 
Unit testing after Zend Framework 1.8
Unit testing after Zend Framework 1.8Unit testing after Zend Framework 1.8
Unit testing after Zend Framework 1.8
 
Import export.odp
Import export.odpImport export.odp
Import export.odp
 
Php Unit With Zend Framework Zendcon09
Php Unit With Zend Framework   Zendcon09Php Unit With Zend Framework   Zendcon09
Php Unit With Zend Framework Zendcon09
 
AtlasCamp 2011: Confluence 4 and Beyond
AtlasCamp 2011: Confluence 4 and BeyondAtlasCamp 2011: Confluence 4 and Beyond
AtlasCamp 2011: Confluence 4 and Beyond
 
Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2
 
Partnering For Growth
Partnering For GrowthPartnering For Growth
Partnering For Growth
 
API Development with Laravel
API Development with LaravelAPI Development with Laravel
API Development with Laravel
 
Using the Features API
Using the Features APIUsing the Features API
Using the Features API
 
Plugins unplugged
Plugins unpluggedPlugins unplugged
Plugins unplugged
 
XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011
 

Ähnlich wie RichFaces 4 Webinar: Moving Up from RichFaces 3

Hands On With Rich Faces 4 - JavaOne 2010
Hands On With Rich Faces 4 - JavaOne 2010Hands On With Rich Faces 4 - JavaOne 2010
Hands On With Rich Faces 4 - JavaOne 2010Max Katz
 
RichFaces: rich:* component library
RichFaces: rich:* component libraryRichFaces: rich:* component library
RichFaces: rich:* component libraryMax Katz
 
Ajax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
Ajax Applications with JSF 2 and new RichFaces 4 - HerbstcampusAjax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
Ajax Applications with JSF 2 and new RichFaces 4 - HerbstcampusMax Katz
 
Introduction to RichFaces
Introduction to RichFacesIntroduction to RichFaces
Introduction to RichFacesMax Katz
 
Extending eZ Platform v2 with Symfony and React
Extending eZ Platform v2 with Symfony and ReactExtending eZ Platform v2 with Symfony and React
Extending eZ Platform v2 with Symfony and ReacteZ Systems
 
Going Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and SeamGoing Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and SeamLincoln III
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
Extending eZ Platform 2.x with Symfony and React
Extending eZ Platform 2.x with Symfony and ReactExtending eZ Platform 2.x with Symfony and React
Extending eZ Platform 2.x with Symfony and ReactPiotr Nalepa
 
JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011Arun Gupta
 
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces Skills Matter
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemAndres Almiray
 
Ajax Applications with RichFaces and JSF 2
Ajax Applications with RichFaces and JSF 2Ajax Applications with RichFaces and JSF 2
Ajax Applications with RichFaces and JSF 2Max Katz
 
JavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemJavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemAlexander Casall
 
Primefaces Nextgen Lju
Primefaces Nextgen LjuPrimefaces Nextgen Lju
Primefaces Nextgen LjuSkills Matter
 
Primefaces Nextgen Lju
Primefaces Nextgen LjuPrimefaces Nextgen Lju
Primefaces Nextgen LjuSkills Matter
 
MWLUG 2015 - AD114 Take Your XPages Development to the Next Level
MWLUG 2015 - AD114 Take Your XPages Development to the Next LevelMWLUG 2015 - AD114 Take Your XPages Development to the Next Level
MWLUG 2015 - AD114 Take Your XPages Development to the Next Levelbalassaitis
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfonyFrancois Zaninotto
 
Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)Fahad Golra
 

Ähnlich wie RichFaces 4 Webinar: Moving Up from RichFaces 3 (20)

Hands On With Rich Faces 4 - JavaOne 2010
Hands On With Rich Faces 4 - JavaOne 2010Hands On With Rich Faces 4 - JavaOne 2010
Hands On With Rich Faces 4 - JavaOne 2010
 
RichFaces: rich:* component library
RichFaces: rich:* component libraryRichFaces: rich:* component library
RichFaces: rich:* component library
 
Ajax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
Ajax Applications with JSF 2 and new RichFaces 4 - HerbstcampusAjax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
Ajax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
 
Introduction to RichFaces
Introduction to RichFacesIntroduction to RichFaces
Introduction to RichFaces
 
Extending eZ Platform v2 with Symfony and React
Extending eZ Platform v2 with Symfony and ReactExtending eZ Platform v2 with Symfony and React
Extending eZ Platform v2 with Symfony and React
 
Going Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and SeamGoing Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and Seam
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Extending eZ Platform 2.x with Symfony and React
Extending eZ Platform 2.x with Symfony and ReactExtending eZ Platform 2.x with Symfony and React
Extending eZ Platform 2.x with Symfony and React
 
JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011
 
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
 
JSF2
JSF2JSF2
JSF2
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
 
Ajax Applications with RichFaces and JSF 2
Ajax Applications with RichFaces and JSF 2Ajax Applications with RichFaces and JSF 2
Ajax Applications with RichFaces and JSF 2
 
JavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemJavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and Ecosystem
 
Primefaces Nextgen Lju
Primefaces Nextgen LjuPrimefaces Nextgen Lju
Primefaces Nextgen Lju
 
Primefaces Nextgen Lju
Primefaces Nextgen LjuPrimefaces Nextgen Lju
Primefaces Nextgen Lju
 
MWLUG 2015 - AD114 Take Your XPages Development to the Next Level
MWLUG 2015 - AD114 Take Your XPages Development to the Next LevelMWLUG 2015 - AD114 Take Your XPages Development to the Next Level
MWLUG 2015 - AD114 Take Your XPages Development to the Next Level
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfony
 
Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)
 
Jsf2 html5-jazoon
Jsf2 html5-jazoonJsf2 html5-jazoon
Jsf2 html5-jazoon
 

Mehr von Max Katz

Using cloud tools to build enterprise mobile apps with APIs fast
Using cloud tools to build enterprise mobile apps with APIs fast Using cloud tools to build enterprise mobile apps with APIs fast
Using cloud tools to build enterprise mobile apps with APIs fast Max Katz
 
Wolters Kluwer Tech. Conference: Disrupting Mobile Development
Wolters Kluwer Tech. Conference: Disrupting Mobile DevelopmentWolters Kluwer Tech. Conference: Disrupting Mobile Development
Wolters Kluwer Tech. Conference: Disrupting Mobile DevelopmentMax Katz
 
Tiggzi at DC jQuery Meetup
Tiggzi at DC jQuery MeetupTiggzi at DC jQuery Meetup
Tiggzi at DC jQuery MeetupMax Katz
 
Learn How to Build Mobile Apps Using Cloud Services
Learn How to Build Mobile Apps Using Cloud ServicesLearn How to Build Mobile Apps Using Cloud Services
Learn How to Build Mobile Apps Using Cloud ServicesMax Katz
 
Tiggr Mobile Apps Builder at Silicon Valley HTML5 Group Meetup
Tiggr Mobile Apps Builder at Silicon Valley HTML5 Group MeetupTiggr Mobile Apps Builder at Silicon Valley HTML5 Group Meetup
Tiggr Mobile Apps Builder at Silicon Valley HTML5 Group MeetupMax Katz
 
Tiggr - Web-based IDE for Mobile Web And Native Apps
Tiggr - Web-based IDE for Mobile Web And Native AppsTiggr - Web-based IDE for Mobile Web And Native Apps
Tiggr - Web-based IDE for Mobile Web And Native AppsMax Katz
 
Building Mobile Apps With jQuery For Any Device In The Cloud
Building Mobile Apps With jQuery For Any Device In The Cloud Building Mobile Apps With jQuery For Any Device In The Cloud
Building Mobile Apps With jQuery For Any Device In The Cloud Max Katz
 
Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011
Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011
Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011Max Katz
 
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Devoxx2010 - Mobile Development Choices: Native Apps vs Web AppsDevoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Devoxx2010 - Mobile Development Choices: Native Apps vs Web AppsMax Katz
 
RichFaces skins
RichFaces skinsRichFaces skins
RichFaces skinsMax Katz
 
RichFaces: more concepts and features
RichFaces: more concepts and featuresRichFaces: more concepts and features
RichFaces: more concepts and featuresMax Katz
 
Rich Enterprise Applications with JavaFX
Rich Enterprise Applications with JavaFXRich Enterprise Applications with JavaFX
Rich Enterprise Applications with JavaFXMax Katz
 
Building RIA Applications with JavaFX
Building RIA Applications with JavaFXBuilding RIA Applications with JavaFX
Building RIA Applications with JavaFXMax Katz
 
Building RIA Applications with RichFaces
Building RIA Applications with RichFacesBuilding RIA Applications with RichFaces
Building RIA Applications with RichFacesMax Katz
 

Mehr von Max Katz (14)

Using cloud tools to build enterprise mobile apps with APIs fast
Using cloud tools to build enterprise mobile apps with APIs fast Using cloud tools to build enterprise mobile apps with APIs fast
Using cloud tools to build enterprise mobile apps with APIs fast
 
Wolters Kluwer Tech. Conference: Disrupting Mobile Development
Wolters Kluwer Tech. Conference: Disrupting Mobile DevelopmentWolters Kluwer Tech. Conference: Disrupting Mobile Development
Wolters Kluwer Tech. Conference: Disrupting Mobile Development
 
Tiggzi at DC jQuery Meetup
Tiggzi at DC jQuery MeetupTiggzi at DC jQuery Meetup
Tiggzi at DC jQuery Meetup
 
Learn How to Build Mobile Apps Using Cloud Services
Learn How to Build Mobile Apps Using Cloud ServicesLearn How to Build Mobile Apps Using Cloud Services
Learn How to Build Mobile Apps Using Cloud Services
 
Tiggr Mobile Apps Builder at Silicon Valley HTML5 Group Meetup
Tiggr Mobile Apps Builder at Silicon Valley HTML5 Group MeetupTiggr Mobile Apps Builder at Silicon Valley HTML5 Group Meetup
Tiggr Mobile Apps Builder at Silicon Valley HTML5 Group Meetup
 
Tiggr - Web-based IDE for Mobile Web And Native Apps
Tiggr - Web-based IDE for Mobile Web And Native AppsTiggr - Web-based IDE for Mobile Web And Native Apps
Tiggr - Web-based IDE for Mobile Web And Native Apps
 
Building Mobile Apps With jQuery For Any Device In The Cloud
Building Mobile Apps With jQuery For Any Device In The Cloud Building Mobile Apps With jQuery For Any Device In The Cloud
Building Mobile Apps With jQuery For Any Device In The Cloud
 
Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011
Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011
Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011
 
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Devoxx2010 - Mobile Development Choices: Native Apps vs Web AppsDevoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
 
RichFaces skins
RichFaces skinsRichFaces skins
RichFaces skins
 
RichFaces: more concepts and features
RichFaces: more concepts and featuresRichFaces: more concepts and features
RichFaces: more concepts and features
 
Rich Enterprise Applications with JavaFX
Rich Enterprise Applications with JavaFXRich Enterprise Applications with JavaFX
Rich Enterprise Applications with JavaFX
 
Building RIA Applications with JavaFX
Building RIA Applications with JavaFXBuilding RIA Applications with JavaFX
Building RIA Applications with JavaFX
 
Building RIA Applications with RichFaces
Building RIA Applications with RichFacesBuilding RIA Applications with RichFaces
Building RIA Applications with RichFaces
 

Kürzlich hochgeladen

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 

Kürzlich hochgeladen (20)

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 

RichFaces 4 Webinar: Moving Up from RichFaces 3

  • 1. Exadel RichFaces 4 Webinar Series Webinar #2: RichFaces 3 to RichFaces 4 — A Class in Moving Up May 11, 2011 Max Katz Charley Cowens http://exadel.com/web/portal/webinars
  • 2. Exadel RichFaces 4 Webinar Schedule June 15, 2011 RichFaces 4 – New and Advanced Features
  • 3. Exadel Max Katz ● Senior Systems Engineer ● JSF,RichFaces, Java EE consulting, and training ● Manages exadel.org – Exadel's open source projects and community ● Community manager for gotiggr.com – tool for creating and sharing interactive web and mobile HTML prototypes
  • 4. Exadel 4 Summer 2011 Author of Lead-author of Practical RichFaces Practical RichFaces, 2/e (Apress) (Apress, July 2011)
  • 5. Exadel Exadel is a global software engineering company. ● Founded in 1998, headquarters in San Francisco Bay Area ● 7 development offices in Europe ● 350+ employees
  • 6. Exadel What Exadel Does Services ● Professional services, rich enterprise application development, Eclipse development, custom rich component development, mobile development, training Products ● Open source with JBoss: RichFaces, JBoss Tools/JBoss Developer Studio; exadel.org: Flamingo, Fiji, jsf4birt, JavaFX Plug-in for Eclipse; gotiggr.com– interactive Web and mobile HTML prototypes
  • 7. Exadel The Plan Is Simple 1) Review the New RichFaces 4 2) Moving up from RichFaces 3 to RichFaces 4
  • 8. Exadel RichFaces 4 is a lightweight, open source framework for JSF 2
  • 9. Exadel RichFaces 4 – rich JSF framework ● UI components ◦ a4j:* tag library (core) ◦ rich:* tag library (UI) ◦ Components' JavaScript API ● Skins ● Client-side validation (Bean Validation based) ● CDK – Component Development Kit
  • 10. Exadel RichFaces 4 100% built on top of JSF2, just extends functionality in JSF 2
  • 11. Exadel RichFaces 4 JavaScript is now entirely based on the popular jQuery library
  • 12. Exadel RichFaces 4 ● All components are reviewed for consistency, usability ● Redesigned following semantic HTML principles ● Server-side and client-side performance optimization ● Strict code clean-up and review
  • 13. Exadel RichFaces 4 Zero-configuration. Just drop RichFaces into the application.
  • 14. Exadel RichFaces 4 New client-side validation based on Bean Validation (JSR 303)
  • 15. Exadel RichFaces 4 New, and easy to use CDK (Component Development Kit), allows quickly to build your own custom rich components
  • 16. Exadel RichFaces 4 Run on: Tomcat 6/7, Resin, JBoss AS 6/7, GlassFish 3.x, WebLogic (run on any server when JSF 2 application can be deployed)
  • 17. Exadel RichFaces 4 Run on: Google App Engine (GAE), Amazon EC2, CloudBees
  • 18. Exadel RichFaces 4 JSF implementations: Mojarra or Myfaces
  • 19. Exadel RichFaces 4 Any browser
  • 20. Exadel RichFaces 4 Tooling support through JBoss Tools, IntelliJ, NetBeans
  • 21. Exadel RichFaces versions Version JSF 1.1 JSF 1.2 JSF 2 RichFaces 3.1.x • RichFaces 3.3.3* • • RichFaces 4 • * Note: RichFaces 3.3.3 has basic JSF 2 support
  • 22. Exadel RichFaces 4 Let's quickly look at some RichFaces features in more detail...
  • 23. Exadel RichFaces 4 core – sending an Ajax request a4j:ajax a4j:commandButton a4j:commandLink a4j:jsFunction a4j:poll a4j:push
  • 24. Exadel <a4j:commandButton/Link> – built-in Ajax behavior /* RichFaces button */ <a4j:commandButton value="Save" render="output" action="#{bean.action}" />
  • 25. Exadel <a4j:jsFunction> – fire Ajax request from any JavaScript function, HTML event <table> ... <td onmouseover="update('yellow')"/> ... </table> <h:form> <a4j:jsFunction name="update" action="#{bean.change}" render="..."> <a4j:param value="param1" assignTo="#{bean.color}"/> </a4j:jsFunction> </h:form>
  • 26. Exadel <a4j:poll> – periodically send an Ajax request <a4j:poll interval="1000" action="#{bean.count}" render="output" enabled="#{bean.pollEnabled}" /> <h:panelGrid id="output"> ... </h:panelGrid>
  • 27. Exadel <a4j:push> ● Server-side events are pushed to client using Comet or WebSockets. ● Implemented using Atmosphere ● Providesexcellent integration with EE containers, and advanced messaging services <a4j:push address="topic@chat" ondataavailable="alert(event.rf.data)" />
  • 28. Exadel RichFace 4 core – advanced rendering features <a4j:outputPanel>
  • 29. Exadel <a4j:outputPanel> – auto rendered panel <h:selectOneMenu value="#{bean.fruit}"> <a4j:ajax listener="#{bean.change}"/> </<h:selectOneMenu> <a4j:outputPanel ajaxRendered="true"> <h:panelGrid> ... </h:panelGrid> Rendered on every </a4j:outputPanel> Ajax request
  • 30. Exadel RichFace 4 core – advanced execute features <a4j:region>
  • 31. Exadel <a4j:region> – declaratively define execute region <h:form> <a4j:region> <h:inputText /> <h:inputText /> <a4j:commandButton /> <a4j:region> </h:form>
  • 32. Exadel RichFace 4 core – more advanced features and tags Client queue a4j:status a4j:param a4j:log
  • 33. Exadel RichFaces queue ● JSF2 has very basic queue functionality ● RichFaces enhancements ◦ Combining requests from the same or different components ◦ Setting request delay ◦ Ignoring “stale” responses
  • 34. Exadel <a4j:status> – Ajax request status <a4j:status name="ajaxStatus"> <f:facet name="start"> <h:graphicImage value="ajaxStatus.jpg"/> </f:facet> </a4j:status> <h:form> <a4j:commandButton status="ajaxStatus"/> </h:form>
  • 35. Exadel <a4j:param> ● Similar to <f:param> but simpler as it also assigns the value to a bean property automatically <a4j:commandButton value="Save"> <a4j:param name="#{bean.product}" value="1009"/> </a4j:commandButton> @ManagedBean public class Bean { private String product; // setter and getter }
  • 36. Exadel <a4j:log> – Ajax request information ● Levels: ◦ debug, info, warn, error
  • 37. Exadel RichFaces UI components ● Output, panels ● Input ● Menu ● Data iteration ● Tree ● Drag and drop ● Client side validation ● Miscellaneous
  • 39. Exadel All RichFaces data iteration components support partial updates
  • 40. Exadel Partial table update render="@column" render="@header" render="@row" render="@body" render="@footer" render="cellId" To render from outside the table: render="tableId@header" render="tableId@body" render="tableId@footer"
  • 41. Exadel Partial table update render="tableId:rows(bean.rowsSet)" render="tableId:rows(bean.rowsSet):cellId"
  • 42. Exadel Client-side validation based on Bean Validation (JSR 303) New in RichFaces 4
  • 43. Exadel RichFaces client validation <rich:validator> public class Bean { @Pattern(regexp="...") private String email; } <h:inputText id="email" value="#{bean.email}"> <rich:validator/> </h:inputText> <rich:message for="email"/>
  • 44. Exadel Many RichFaces components provide client-side JavaScript API <rich:popupPanel> JavaScript API Method name Description Return the top co-ordinate for the position of getTop() the pop-up panel. Return the left co-ordinate for the position of getLeft() the pop-up panel. Move the pop-up panel to the co-ordinates moveTo(top,left) specified with the top and left parameters. Resize the pop-up panel to the size specified resize(width,height) with the width and height parameters. show() Show the pop-up panel. hide() Hide the pop-up panel.
  • 45. Exadel Using #rich:component() to show/hide pop-up panel <input type="button" onclick="#{rich:component('popup')}.show();" value="Open" /> <rich:popupPanel id="popup"> <h:outputLink value="#" onclick="#{rich:component('popup')}.hide(); return false;"> <h:outputText value="Close"/> </h:outputLink> </rich:popupPanel>
  • 47. Exadel Skins ● Lightweight extension on top of CSS ● Change look and feel of all rich component with a few minor changes ● Apply to standard JSF and HTML tags
  • 48. Exadel Ready-to-use skins ● classic <context-param> <param-name>org.richfaces.skin</param-name> ● wine <param-value>ruby</param-value> </context-param> ● blueSky ● ruby ● emeraldTown ● deepMarine ● plain ● japanCherry
  • 49. Exadel Moving from RichFaces 3 to RichFaces 4...
  • 50. Exadel Things to know before upgrading
  • 51. Exadel JSF 1.x to JSF 2 ● Migrating to RichFaces 4 will automatically mean you are also upgrading to JSF 2
  • 52. Exadel Yey! No more JSP! ● JSP no longer supported ● Must use Facelets with RichFaces 4
  • 53. Exadel Seam ● Seam 2 doesn't work with JSF 2 ● Consider using Seam 3 with RichFaces 4
  • 54. Exadel RichFaces filter configuration in web.xml file is no longer required Just drop RichFaces Jars into the application There are still optional context parameters (skins, etc)
  • 56. Exadel <a4j:ajax> is 100% based on the standard <f:ajax> behavior: RichFaces 3 RichFaces 4 <a4j:support> <a4j:ajax> But, the concepts stay the same: 1)How to send an Ajax request 2)Partial view processing 3)Partial view rendering
  • 57. Exadel Important core attribute changes RichFaces 3 RichFaces 4 reRender render event=onclick event=click limitToList limitRender ajaxSingle execute=@this execute process @all, @form, @this, @none, id's, EL, @region
  • 58. Exadel RichFaces 3 RichFaces 4 <a4j:commandButton>, <a4j:commandButton>, <a4j:commandLink> <a4j:commandLink> <a4j:poll> <a4j:poll> <a4j:jsFunction> <a4j:jsFunction> <a4j:status> <a4j:status> <a4j:log> <a4j:log>
  • 59. Exadel RichFaces 3 RichFaces 4 <a4j:status> <a4j:status> <a4j:log> <a4j:log> <a4j:mediaOutput> <a4j:mediaOutput>
  • 60. Exadel Other changes: RichFaces 3 RichFaces 4 <a4j:actionParam> <a4j:param> <a4j:push> <a4j:push> Component completely redesigned <a4j:region> <a4j:region> <a4j:actionListener> Registers a listener on a N/A component and allows simple method binding
  • 61. Exadel No longer in RichFaces 4 as now part of JSF 2: ● <a4j:loadScript> ● <a4j:loadStyle> ● <a4j:keepAlive> No longer in RichFaces 4: ● <a4j:form> ● <a4j:ajaxListener>
  • 62. Exadel To redefine queue setting by individual components, a new <a4j:attachQueue> tag was introduced: <a4j:queue /> ... <a4j:commandButton> <a4j:attachQueue requestDelay="1000" requestGroupingId="ajaxGroup" /> </a4j:commmandButton> RichFaces 3 RichFaces 4 <a4j:queue> <a4j:queue> N/A <a4j:attachQueue>
  • 64. Exadel Rich inputs RichFaces 3 RichFaces 4 <rich:calendar> <rich:calendar> <rich:inplaceInput> <rich:inplaceInput> <rich:inplaceSelect> <rich:inplaceSelect> <rich:inputNumberSlider> <rich:inputNumberSlider> <rich:inputNumerSpinner> <rich:inputNumerSpinner> <rich:suggestionBox> <rich:autocomplete> <rich:comboBox> Merged with <rich:autocomplete> N/A <rich:select>
  • 65. Exadel Inputs that didn't make it... RichFaces 3 RichFaces 4 <rich:colorPicker> Not in Final, planned <rich:editor> Not in Final, planned
  • 66. Exadel Rich output/panels RichFaces 3 RichFaces 4 <rich:panel> <rich:panel> <rich:modalPanel> <rich:popupPanel> <rich:panelBar> <rich:accordion> <rich:simpleTogglePanel> <rich:collapsiblePanel> <rich:tab>, <rich:tabPanel> <rich:tab>, <rich:tabPanel> <rich:togglePanel> <rich:togglePanel> <rich:toolBar> <rich:toolbar> <rich:progressBar> <rich:progressBar> <rich:toolTip> <rich:tooltip>
  • 67. Exadel Outputs that didn't make it... RichFaces 3 RichFaces 4 <rich:paint2D> Possible with JSF 2 <rich:separator> Use <hr/> with styling Doesn't satisfy semantic <rich:spacer> markup principles
  • 68. Exadel Rich selects/ordering RichFaces 3 RichFaces 4 <rich:orderingList> Not in Final, planned <rich:listShuttle> Not in Final, planned <rich:pickList> Not in Final, planned
  • 69. Exadel Rich menu RichFaces 3 RichFaces 4 <rich:toolBar> <rich:toolBar> <rich:dropDownMenu> <rich:toolBar> <rich:panelMenu> <rich:panelMenu> <rich:contextMenu> Not in Final, planned.
  • 70. Exadel Rich data iteration RichFaces 3 RichFaces 4 <rich:dataTable> <rich:dataTable> <rich:dataGrid> <rich:dataGrid> <rich:datascroller> <rich:dataScroller> <a4j:repeat> <a4j:repeat> <rich:extendedDataTable> <rich:extendedDataTable> <rich:scrollableDataTable> <rich:dataList> <rich:dataOrderingList> <rich:list> <rich:dataDefintionList> N/A <rich:collapsibleSubTable>
  • 71. Exadel Rich data iteration didn't make it RichFaces 3 RichFaces 4 <rich:columns> Not in Final <rich:subTable> Not in Final <rich:dataFilterSlider> Not in Final
  • 72. Exadel Validation RichFaces 3 RichFaces 4 Client validation: <rich:ajaxValidator> <a4j:validator> No longer needed. Support <rich:beanValidator> via JSF 2 <rich:graphValidator> <rich:graphValidator> <rich:message> <rich:message> <rich:messages> <rich:messages>
  • 73. Exadel Rich trees Pretty much all version 3 functionality is in RichFaces 4
  • 74. Exadel Rich drag and drop Pretty much all version 3 functionality is in RichFaces 4
  • 75. Exadel Rich miscellaneous RichFaces 3 RichFaces 4 <rich:componentControl> <rich:componentControl> <rich:jQuery> <rich:jQuery> <rich:hashParam> Groups parameters into N/A hash parameter to be passed to components via JavaScript API.
  • 76. Exadel Rich miscellaneous that didn't make it RichFaces 3 RichFaces 4 <rich:effect> Not in Final <rich:gmap> Not in Final, planned <rich:virtualEarth> Not in Final, planned Available as custom <rich:insert> component. See RichFaces components showcase. <rich:hotKey> Not in Final. Use jQuery. Not in Final. Use YUI or Layout components HTML.
  • 77. Exadel A note on Not in Final Component is not in 4.0.0 but many will be added in 4.x release Get involved in RichFaces community, and let everyone know what you want!
  • 78. Exadel Skins Skins probably had the least changes
  • 79. Exadel Context parameter to set default application skin RichFaces 3 RichFaces 4 org.richfaces.SKIN org.richfaces.skin org.ajax4jsf.SKIN
  • 80. Exadel Skins in RichFaces 4 Migrated Not migrated ●blueSky ●laguna ●emeraldTown ●darkX ●ruby ●glassX ●classic ●japanCherry ●wine ●deepMarine ●NULL ●DEFAULT ●plain
  • 81. Exadel Where can I try the new RichFaces 4? http://livedemo.exadel.com/richfaces4-demo
  • 82. Exadel How can we help with RichFaces ● Web development with RichFaces Training Days ● Version 3 to 4 migration JSF 1.2, 2 1-2 ● Performance tune-up RichFaces 3, 4 1-2 JSF and RichFaces 2-3 ● Custom component RichFaces 3 to 4 1-2 development ● On-site training
  • 83. Exadel That's it for RichFaces, there is one more thing I want to show you.
  • 84. Exadel Create your first interactive prototype at http://gotiggr.com
  • 85. Exadel Tiggr (gotiggr.com) is a web application for building and sharing interactive web and mobile HTML prototypes
  • 86. Exadel max@exadel.com Thank @maxkatz you! mkblog.exadel.com gotiggr.com