exploring js f 2 and prime faces
TRANSCRIPT
![Page 1: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/1.jpg)
EXPLORING JSF 2.0AND
PRIMEFACES
Cagatay Civici
PRIMETECHNOLOGY
![Page 2: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/2.jpg)
Cagatay Civici
JSF EG (Expert Group) Member
PrimeFaces Lead
Apache MyFaces PMC
Speaker, Author, Reviewer
Consultant and Trainer for Prime Technology
![Page 3: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/3.jpg)
Topics
JSF Overview
What’s New in JSF 2.0?
Go beyond with PrimeFaces
![Page 4: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/4.jpg)
JSF Overview
Standard for Java EE
Component Oriented
Event Driven
RenderKits (web, mobile ...)
![Page 5: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/5.jpg)
History
JSR 127 - JSF 1
JSR 252 - JSF 1.2
JSR-314 - JSF 2.0 <- Coolest one
![Page 6: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/6.jpg)
JSF Ecosytem
Apache Software Foundation (MyFaces, Trinidad, Tobago, Tomahawk, ExtVal...)
Oracle (ADF Faces - Mojarra Implementation)
IBM (IBM JSF Component)
Prime Technology (PrimeFaces)
VMware/SpringSource (Spring WebFlow)
RedHat/JBoss (Seam, RichFaces)
JAVA EE 6 (CDI, Bean Validation)
Other *Faces libs
![Page 7: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/7.jpg)
JSF 2.0 Highlights
Facelets/VDL
AJAX
Custom Components
Behaviors
Partial State
• Navigations• Resource Loading• Bookmarking• New Event API• Exception Handling• JSR-303 Bean Validation
and general pain relief
Powered by Community Feedback
![Page 8: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/8.jpg)
JSP with JSF
Mismatch
JSP tags create JSF components
Content vs Component
Two different lifecycles
![Page 9: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/9.jpg)
Facelets / VDL
XHTML based
Optimized for JSF
Templating
New View Declaration Language API
NOW STANDARD!
![Page 10: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/10.jpg)
AJAX and JSF 1.x
Good match (Partial Output)
Wheel reinvented by;
Compatibility issues
PrimeFaces
RichFaces
IceFaces
OpenFaces
Trinidad
ADF Faces *Faces
Tomahawk
![Page 11: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/11.jpg)
AJAX and JSF 2.0
Now Standard!
New APIs;
Server: PartialViewContext
Client: jsf.ajax.AjaxRequest
New tag;
<f:ajax />
![Page 12: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/12.jpg)
AJAX and JSF 2.0
PartialViewContext API
Partial Processing (execute)
Partial Rendering (render)
Standard request parameters
![Page 13: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/13.jpg)
f:ajaxAjax Behavior
<h:inputText value=”#{bean.value}”><f:ajax render=”display”/>
</h:inputText> <h:outputText id=”display” />
<h:inputText value=”#{bean.value}”><f:ajax render=”display” execute=”@this”/>
</h:inputText> <h:outputText id=”display” />
<h:inputText value=”#{bean.value}”><f:ajax render=”display” execute=”@this” event=”blur”/>
</h:inputText> <h:outputText id=”display” />
![Page 14: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/14.jpg)
No XML
faces-config.xml is not optional
Get rid of;
<managed-bean />
<navigaton-case />
<component />, <renderer />
<converter />, <validator />
...
![Page 15: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/15.jpg)
Managed Beans with JSF 1.x
<managed-bean><managed-bean-name>itemView</managed-bean-name><managed-bean-class>com.prime.view.itemView</managed-bean-class><managed-bean-scope>request</managed-bean-scope>
</managed-bean>
package com.prime.view;
public class ItemView { }
![Page 16: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/16.jpg)
Managed Beans with JSF 2.0
NO XML
@ManagedBean public class ItemView { }
![Page 17: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/17.jpg)
Dependencies with JSF 1.x<managed-bean><managed-bean-name>itemView</managed-bean-name><managed-bean-class>com.prime.view.itemView</managed-bean-class><managed-bean-scope>request</managed-bean-scope><managed-property>
<property-name>itemService</property-name><value>#{itemService}</value>
</managed-property> </managed-bean>
<managed-bean><managed-bean-name>itemService</managed-bean-name><managed-bean-class>com.prime.service.ItemServiceImpl</managed-bean-class><managed-bean-scope>application</managed-bean-scope>
</managed-bean>
package com.prime.view;
public class ItemView {private ItemService itemService;
//getter&setter }
![Page 18: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/18.jpg)
Dependencies with JSF 2.0
@ManagedBean(name=”itemService”) @ApplicationScoped public class ItemServiceImpl implements ItemService {
}
NO XML
@ManagedBean public class ItemView {
@ManagedProperty(value=”itemService”)private ItemService itemService;
//getter&setter
}
![Page 19: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/19.jpg)
Scopes
@RequestScoped
@ViewScoped
@SessionScoped
@CustomScoped
Flash scope
![Page 20: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/20.jpg)
View Scope
Between request and session
Lives for postbacks
#{viewScope}
UIViewRoot.getViewMap()
![Page 21: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/21.jpg)
Flash Scope
ROR concept
Lives in subsequent request
Survives redirect
Post-Redirect-Get
#{flash}
ExternalContext.getFlash()
![Page 22: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/22.jpg)
System Events
Phaselisteners are not enough
Subscribe to various events in lifecycle
Application Events
Component Events
![Page 23: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/23.jpg)
Application Events
Application wide events
ExceptionQueuedEvent
PostConstructApplicationEvent
PreDestroyApplicationEvent
more...
![Page 24: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/24.jpg)
Component Events
View based events
PostAddToViewEvent
PreValidateEvent
PreRenderViewEvent
more...<h:inputText value=”#{bean.value}”><f:event type=”preValidate” listener=”#{bean.preValidate}” />
</h:inputText>
![Page 25: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/25.jpg)
Event Listeners
New API SystemEventListener
isListenerForSource(Object source)
processEvent(SystemEvent event)
Configure via xml or @ListenerFor
Application.subscribeToEvent(event, listener);
UIComponent.subscribeToEvent(event, listener);
![Page 26: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/26.jpg)
Navigations
Implicit Navigation
Configurable NavigationHandler
![Page 27: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/27.jpg)
Navigations with JSF 1.x<navigation-rule><from-view-id>/source.xhtml</from-view-id><navigation-case>
<from-outcome>success</from-outcome><to-view-id>target.xhtml</to-view-id>
</navigation-case> </navigation-rule>
public String buttonClick() {return “success”;
}
source.xhtml target.xhtml
![Page 28: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/28.jpg)
Navigations with JSF 2.0
public String buttonClick() {return “target”;
}
source.xhtml target.xhtml
NO XML
![Page 29: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/29.jpg)
GET Support
Navigate by GET
View Metadata and View Parameters
Bookmarkable URLs
Post-Redirect-Get
![Page 30: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/30.jpg)
GET Support with JSF 1.x
Assigned when bean is used for first time
No validation/conversion support
No post assignment listener (init view)
<managed-bean><managed-bean-name>itemView</managed-bean-name><managed-bean-class>com.prime.view.itemView</managed-bean-class><managed-bean-scope>request</managed-bean-scope><managed-property>
<property-name>itemId</property-name><value>#{param[‘itemId’]}</value>
</managed-property> </managed-bean>
http://www.site.com/itemView.jsf?itemId=10
![Page 31: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/31.jpg)
GET Support with JSF 2.0
Introducing ViewParameters
Validation/conversion support
Post assignment listener (init view)
<f:view><f:metadata>
<f:viewParam name=”itemId” value=”#{itemView.itemId}” /></f:metadata>
</f:view>
http://www.site.com/itemView.jsf?itemId=10
![Page 32: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/32.jpg)
GET Support with JSF 2.0
Validation/conversion support
<f:view><f:metadata>
<f:viewParam name=”itemId” value=”#{itemView.itemId}”><f:validator validatorId=”itemValidator” />
</f:viewParam></f:metadata>
</f:view>
![Page 33: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/33.jpg)
GET Support with JSF 2.0
Post mapping listener<f:view><f:metadata>
<f:viewParam name=”itemId” value=”#{itemView.itemId}”><f:validator validatorId=”itemValidator” />
</f:viewParam>
<f:event type=”preRenderView” listener=”#{itemView.loadItem}”/></f:metadata>
</f:view>
public void loadItem() {//load item with itemId from datatabase
}
![Page 34: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/34.jpg)
GET Support with JSF 1.2
GET component h:outputLink
Manual URL generation
No support for;
context-path
navigation-rules
<h:outputLink value=”#{request.contextPath}”/itemView.jsf?itemId=10>View Item
</h:outputLink>
![Page 35: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/35.jpg)
GET Support with JSF 2.0
<h:button /> and <h:link />
Auto generated Bookmarkable URLs
Integrated with Navigation Rules
<h:link outcome=”main” />
<h:button outcome=”main” includeViewParams=”true”/>
<h:button outcome=”main” includeViewParams=”true”><f:param name=”itemId” value=”#{itemView.itemId}” />
</h:button>
![Page 36: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/36.jpg)
Project Stage
Runtime hint
Mostly for use of implementation and extensions
Development, Production, SystemTest, UnitTest
Application.getProjectStage()
<context-param><param-name>javax.faces.PROJECT_STAGE</param-name><param-value>Development</param-value>
</context-param>
![Page 37: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/37.jpg)
Behaviors
Attaching behaviors
One built-in client behavior, f:ajax
<h:commandButton value=”Submit” onclick=”return confirm(‘Sure?’)”/>
<h:commandButton value=”Submit”><custom:confirmation message=”Sure?” />
</h:commandButton>
![Page 38: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/38.jpg)
State Saving in JSF 1.x
Full Component Tree saved/restored
Attributes saved/restored
Performance/Memory issues
Burden for component developer
![Page 39: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/39.jpg)
State Saving in JSF 2.0
Partial State Saving
Initial state is marked
Deltas are saved and helper
StateHelper API for developers
Much less in size
![Page 40: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/40.jpg)
Resource Loading with JSF 1.xLoading bundles resources from jar
Custom Servlet or Filter required
![Page 41: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/41.jpg)
Resource Loading with JSF 2.0
New Resource APIs for;
Registering
Relocating
Loading
locale, version support
New components
<h:outputStylesheet /> and <h:outputScript />
![Page 42: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/42.jpg)
Registering
Resources located at;
/webroot/resources/mylib
/jar/META-INF/resources/mylib@ResourceDependency(name=”cool.js”, library=”mycoollib”)
public class MyCoolComponent extends UIComponent {}
@ResourceDependencies {@ResourceDependency(name=”cool.js”, library=”mycoollib”)@ResourceDependency(name=”cool.css”, library=”mycoollib”)
}public class MyCoolComponent extends UIComponent {}
![Page 43: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/43.jpg)
Relocating
Resources placed at head or body
<h:head />, <h:body />
UIViewRoot.addComponentResource API
@ResourceDependency(name=”cool.js”, library=”mycoollib”, target=”head”)public class MyCoolComponent extends UIComponent {}
![Page 44: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/44.jpg)
Resource Components
Load from webroot or jar
<h:outputStylesheet name=”cool.css” library=”mycoollib” />
<h:outputScript name=”cool.js” library=”mycoollib” target=”head”/>
<h:graphicImage name=”cool.png” library=”mycoollib”/>
<h:graphicImage value=”#{resource[‘mycoollib:cool.png’}”/>
![Page 45: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/45.jpg)
Resources in CSS
#{resource} variable
Generates;
.header {background:url(“#{resource[‘mylib:header.png’]}”);
}
.header {background:url(“/myapp/javax.faces.resource/header.png?ln=mylib”);
}
![Page 46: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/46.jpg)
Bean ValidationJSR-303 Integration
Reuse constraints@NotNull
@Size(min=5, max=10) private String title;
<h:inputText value=”#{bean.item.title}” required=”true”><f:validateLength min=”5” max=”10” />
</h:inputText/>
instead of
<h:inputText value=”#{bean.item.title}” />
![Page 47: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/47.jpg)
UI ComponentsStandard JSF Components (button, radio, checkbox)
Third Party Suites (e.g. PrimeFaces)
But how to build your own?
![Page 48: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/48.jpg)
Custom Components with JSF 1.x
5 different artifacts required
faces-config.xml config<component /> <renderer/ > jsp tld config
JSP Tag Class Component Class
Renderer Class
![Page 49: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/49.jpg)
Custom Components with JSF 2.0
One .xhtml file is enough
component.xhtml
![Page 50: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/50.jpg)
DatePicker Demo
<prime:datePicker />
/webroot/resources/prime/datepicker.xhtml
/webroot/resources/jquery/...
![Page 51: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/51.jpg)
Next Generation Component Suite
Most Popular JSF 2.0 Library
100+ components (Everything you need)
Lightweight: one jar, no dependencies, zero-config
Skinning support with 25+ themes and theme creator
Extensive documentation
Huge and active community
jQuery based
Mobile UI Kit: TouchFaces
Ajax Push support
Open Source (Apache License)
PRIMEFACES
![Page 52: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/52.jpg)
Setup
No setup required, drop the jar and add the namespace;
xmlns:p=”http://primefaces.prime.com.tr/ui”
<p:editor />
![Page 53: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/53.jpg)
PrimeFaces UI
![Page 54: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/54.jpg)
PrimeFaces Ajax
Based on standard JSF 2.0 Ajax APIs
Extensions;
p:ajax
callbacks
p:ajaxStatus
jquery based client side api implementation
![Page 55: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/55.jpg)
Callbacks
onstart
oncomplete
onsuccess
onerror
p:ajax f:ajaxonevent
onerror
![Page 56: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/56.jpg)
Callback Params
Pass data from server to client as JSON
Built-in callback param : “validationFailed”public void save() {
Request context = RequestContext.getCurrentInstance(); context.addCallbackParam(“saved”, true);
}
<p:commandButton value=”Submit” oncomplete=”handleComplete(xhr, status, args)” actionListener=”#{bean.save}”/>
function handleComplete(xhr, status, args) {var saved = args.saved;
}
![Page 57: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/57.jpg)
Unobstrusive<p:schedule value=”#{bean.mode}” editable=”true”/>
<div id=”_gen”></div> <script type=”text/javascript”>
new PrimeFaces.widget.Schedule(‘_gen’, {editable:true}); </script>
JSF Page:
Renders:
You get:
![Page 58: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/58.jpg)
Progressive Enhancement<p:button value=”Submit” />
<button id=”gen”>Submit</button> <script type=”text/javascript”>
new PrimeFaces.widget.Button(‘_gen’); </script>
JSF Page:
Renders:
You get:
![Page 59: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/59.jpg)
Themes
Integrated with ThemeRoller
25+ Built-in Themes
Online ThemeCreator to create your own easily
![Page 60: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/60.jpg)
Theme Gallery
![Page 61: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/61.jpg)
How to Create Your Own
No need to know CSS
Disable default skin
See: http://vimeo.com/14235640
<context-param><param-name>primefaces.skin</param-name><param-value>none</param-value>
</context-param>
![Page 62: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/62.jpg)
PrimeFaces Demo
![Page 63: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/63.jpg)
Ajax Push
Powered by Atmosphere Framework
Currently Proof-of-Concept (http-streaming)
Future;
WebSockets, Long-Polling, Http-Streaming
![Page 64: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/64.jpg)
TouchFaces
Mobile UI components
Optimized for webkit (eg IPhone, Android)
Native looking webapps
jqtouch based
![Page 65: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/65.jpg)
TouchFaces Demo
Translate Chat - Ajax Push PathFinder - GPS TwitFaces
Weather Notes News
![Page 66: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/66.jpg)
Integration
Spring Core
Spring WebFlow
Seam
CDI
Portlets
![Page 67: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/67.jpg)
IDE Support
![Page 68: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/68.jpg)
Documentation
400+ pages (for now)
Component reference, examples, tips
![Page 69: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/69.jpg)
Community Support
Huge community, 500 posts every week
![Page 70: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/70.jpg)
Enterprise Support
Fast reponse times
Priority forum access
Custom component development
http://www.primefaces.org/support.html
![Page 71: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/71.jpg)
2.2 Trailer
![Page 72: Exploring Js f 2 and Prime Faces](https://reader034.vdocuments.site/reader034/viewer/2022051516/55cf9cf3550346d033aba4e0/html5/thumbnails/72.jpg)
Trainings
Prime Technology Courses (onsite and online);
JSF2 and PrimeFaces
JSF2 - Spring - JPA (popular)
JSF - Seam - JPA
JSF2 - CDI- JPA (Java EE 6)
and more
www.prime.com.tr/training.html