Download presentation
Presentation is loading. Please wait.
1
Facelets Çağatay Çivici Apache MyFaces PMC cagatay@apache.org
2
Çağatay Çivici Apache MyFaces Project PMC Member OpenLogic Expert Group Member Sourceforge jsf-comp project developer JSF Client Side Validators Acegi Security Framework’s JSF Components JFreeChart for JSF : JSF Chart Creator FacesTrace: Visual Debugger of JSF
3
Agenda JSF and JSP Facelets Jsfc and inline texts Templating Composition Components EL Functions JSTL Support Custom Logic Tags
4
JSF and JSP JSP is the default view technology JSP tags refer to JSF components h:commandButton = HtmlCommandButton Mixing them brings overhead because of two different lifecycles
5
JSF and JSP (Advantages) JSP is well adopted, reduces learning curve of JSF. Above is the only advantage
6
JSF and JSP (Disadvantages) JSP is created to generate dynamic output not to create component trees Two different lifecycles (overhead) Content Interweaving Issues
7
JSF and JSP JSF 1.1 - Initial request (e.g. index.jsf) 1.FacesServlet gets the request and JSF lifecycle begins 2.restoreState returns null and a new view is created (createView) with view id = index.jsp (jsp is the default suffix) 3.lifecycle jumps to renderResponse 4.renderView is called that dispatches index.jsp to the container 5.Container traverses all the tags, tags call component’s encode methods during component tree is created 6.State is saved via writeState and buffered output is rendered to the client. JSF 1.2 - a servletwrapper is used instead of f:view to buffer the content and component tree is created before rendering
8
Facelets A viewhandler purely created for JSF No more JSP .xhtml instead of.jsp No tld files and no tag classes to defined a UIComponent Faster than using JSP&JSF
9
Migrating from JSP to Facelets
10
Installation Add jsf-facelets.jar to the classpath Add viewhandler config to faces-config.xml Change javax.faces.DEFAULT_SUFFIX to.xhtml
11
*.taglib.xml Concept similar to tld but lightweight Used to define components, converters, validators, composition components, custom logic tags, functions and etc.
12
Jsfc Jsfc : jwcid concepty in Tapestry Provides integration with HTML editors
13
Inline Texts Inline Text: Display texts without a UIComponent #{IndexPageBean.welcomeMessage}
14
Support for Unified EL Facelets support the Unified EL #{BeanName.field} same as; ${BeanName.field}
15
Templating A template is an xhtml with placeholders Placeholders are marked with ui:insert Fragment from Template.xhtml Default Title In order to use the template ui:composition is needed. Fragment from index.xhtml Welcome to index page
16
Composition Components Composition component is basically a template userInfo.xhtml Logged as : #{user} myfacelets.taglib.xml userInfo tags/userInfo.xhtml Use as;
17
EL Functions MyFunctions.java public static String length(String name) { if( name == null ) return null; else return String.valueOf( name.length() ); } myfacelets.taglib.xml length faceletsbox.utils.CustomerUtils java.lang.String length(java.lang.String) Use as; #{ds:length(MyBean.userName)}
18
JSTL Support With JSP, mixing JSF and JSTL is problematic Facelets brings limited but faultless support
19
Custom logic tags JSTL like logic tags by extending Facelets TagHandler myfacelets.taglib.xml if mycompany.myproject.utils.IfHandler Use as; Welcome
20
List of built-in Facelets tags
21
Summary Facelets saves JSF from the burden of JSP Great for templating and composition components plus bonuses like el functions IDE support is not wide, only Exadel support facelets for now
22
The End – Questions? cagatay@apache.org www.jroller.com/page/cagataycivici
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.