JSF2_AJAX

35
Copyright © Clarity Training, Inc.2009  JavaServer Faces 2.0 1 Implementing Ajax components David Geary Clarity Training, Inc.

Transcript of JSF2_AJAX

Page 1: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 1/35

Copyright © Clarity Training, Inc.2009

 JavaServer Faces 2.0

1

Implementing Ajax components

David Geary 

Clarity Training, Inc.

Page 2: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 2/35

Copyright © Clarity Training, Inc. 2009

David Geary

 JSF 

Page 3: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 3/35

Copyright © Clarity Training, Inc. 2009

Clarity Training

corewebdevelopment.com

Page 4: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 4/35

Copyright © Clarity Training, Inc. 2009

Based on

Page 5: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 5/35

Copyright © Clarity Training, Inc. 2009

Code

http://code.google.com/p/geary-nfjs

svn co http://geary-nfjs.googlecode.com/svn/trunk/ geary-nfjs-read-only

Page 6: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 6/35

Copyright © Clarity Training, Inc. 2009

Demonstration

Page 7: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 7/35

Copyright © Clarity Training, Inc. 2009

This session

Composite components

Ajax with JSF 2

Ajax validation

Ajax progress bar 

Ajax components

Page 8: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 8/35

Copyright © Clarity Training, Inc. 2009

Composite components

Composite components…

...are simple to implement

...require no configuration

...support fast iterative development (without redeploying the application)

Page 9: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 9/35

Page 10: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 10/35

Copyright © Clarity Training, Inc. 2009

Using an icon

<html xmlns="http://www.w3.org/1999/xhtml"  xmlns:util="http://java.sun.com/jsf/composite/components/util">

  <util:icon image="#{resource['images:disk-icon.png']}" actionMethod="#{sourceViewer.showSource}

  styleClass="icon"/> </html>

Page 11: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 11/35

Copyright © Clarity Training, Inc. 2009

Implementing the icon: attributes

<html xmlns="http://www.w3.org/1999/xhtml"  xmlns:h="http://java.sun.com/jsf/html"  xmlns:composite="http://java.sun.com/jsf/composite">

  <composite:interface>  <composite:attribute name="image"  required="true" />  <composite:attribute name="styleClass"  default="icon" />  <composite:attribute name="actionMethod" method-signature="java.lang.String action()" />

  </composite:interface> 

<composite:implementation>  <h:form>  <h:commandLink action="#{cc.attrs.actionMethod}"> 

<h:graphicImage url="#{cc.attrs.image}"  styleClass="#{cc.attrs.styleClass}" /> 

</h:commandLink>  </h:form>  </composite:implementation> </html>

Page 12: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 12/35

Copyright © Clarity Training, Inc. 2009

Demonstration

Page 13: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 13/35

Copyright © Clarity Training, Inc. 2009

This session

Composite components

Ajax with JSF 2

Ajax validation

Ajax progress bar 

Ajax components

Page 14: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 14/35

Copyright © Clarity Training, Inc. 2009

The JSF lifecycle

Page 15: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 15/35

Copyright © Clarity Training, Inc. 2009

execute

Page 16: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 16/35

Copyright © Clarity Training, Inc. 2009

render 

Page 17: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 17/35

Copyright © Clarity Training, Inc. 2009

Using <f:ajax>

<h:inputText id="name" value="#{user.name}"> 

</h:inputText>

 

<h:outputText id="echo" value="#{user.name}"/>

<f:ajax event="keyup" execute="@this" render ="echo"/>

Page 18: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 18/35

Copyright © Clarity Training, Inc. 2009

Demonstration

Page 19: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 19/35

Copyright © Clarity Training, Inc. 2009

This session

Composite components

Ajax with JSF 2

Ajax validation

Ajax progress bar 

Ajax components

Page 20: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 20/35

Copyright © Clarity Training, Inc. 2009

Ajax validation

Page 21: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 21/35

Copyright © Clarity Training, Inc. 2009

markup

<h:inputText value="#{user.name}" 

 

</h:inputText> 

<f:ajax event="blur"  render ="nameError" /> 

<h:outputText id="nameError"  value="#{user.nameError}"  style="color: red" />

  valueChangeListener ="#{user.validateName}" > 

Page 22: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 22/35

Copyright © Clarity Training, Inc. 2009

validator 

public class User {private String nameError;

  public void setNameError(String error) {nameError = error;}  public String getNameError() {nameError;}

}

public void validateName(ValueChangeEvent e) {UIInput nameInput = (UIInput)e.getComponent();

 // validate nameInput’s value, and store error msg in nameError 

}

Page 23: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 23/35

Copyright © Clarity Training, Inc. 2009

Demonstration

Page 24: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 24/35

Copyright © Clarity Training, Inc. 2009

This session

Composite components

Ajax with JSF 2

Ajax validation

Ajax progress bar 

Ajax components

Page 25: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 25/35

Copyright © Clarity Training, Inc. 2009

Ajax progress bar 

Page 26: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 26/35

Copyright © Clarity Training, Inc. 2009

setting the event handler 

<h:selectOneMenu id="menu"  value="#{place.zoomIndex}"> 

<f:ajax render ="image" onevent="zoomChanging"/>…

 

</h:selectOneMenu>

Page 27: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 27/35

Copyright © Clarity Training, Inc. 2009

the event handler (JavaScript)

function zoomChanging(data) {…

  if (data.status == "begin") {// hide menu and show progress bar 

}

else if (data.status == "success") {// hide progress bar and show menu}

}

Page 28: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 28/35

Copyright © Clarity Training, Inc. 2009

Demonstration

Page 29: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 29/35

Copyright © Clarity Training, Inc. 2009

This session

Composite components

Ajax with JSF 2

Ajax validation

Ajax progress bar 

Ajax components

Page 30: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 30/35

Copyright © Clarity Training, Inc. 2009

Google maps

Page 31: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 31/35

Copyright © Clarity Training, Inc. 2009

gmaps4jsf 

Blog: jroller.com/HazemBlog

Download: code.google.com/p/gmaps4jsf 

Documentation: http://code.google.com/p/gmaps4jsf/wiki/TagLibraryDocumentation

Page 32: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 32/35

Copyright © Clarity Training, Inc. 2009

plug in the component

Page 33: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 33/35

Copyright © Clarity Training, Inc. 2009

markup

 <m:map id="placeMap" width="420px" height="400px" address="#{location.address}" zoom="#{location.zoomIndex}"…>

 

</m:map> 

<m:mapControl id="smallMapCtrl" name="GSmallMapControl" position="G_ANCHOR_BOTTOM_RIGHT"/>

<m:marker  id="placeMapMarker"/> 

<m:mapControl  id="smallMapTypeCtrl" name="GMapTypeControl"/>

Page 34: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 34/35

Page 35: JSF2_AJAX

8/4/2019 JSF2_AJAX

http://slidepdf.com/reader/full/jsf2ajax 35/35

The End

35