My JSF Books/Videos My JSF Tutorials OmniFaces/JSF PPTs
JSF 2.3 Tutorial
JSF Caching Tutorial
JSF Navigation Tutorial
JSF Scopes Tutorial
JSF Page Author Beginner's Guide
OmniFaces 2.3 Tutorial Examples
OmniFaces 2.2 Tutorial Examples
JSF Events Tutorial
OmniFaces Callbacks Usages
JSF State Tutorial
JSF and Design Patterns
JSF 2.3 New Features (2.3-m04)
Introduction to OmniFaces
25+ Reasons to use OmniFaces in JSF
OmniFaces Validators
OmniFaces Converters
JSF Design Patterns
Mastering OmniFaces
Reusable and less-verbose JSF code

My JSF Resources ...

Java EE Guardian
Member of JCG Program
Member MVB DZone
Blog curated on ZEEF
OmniFaces is an utility library for JSF, including PrimeFaces, RichFaces, ICEfaces ...

[OmniFaces Utilities] - Find the right JSF OmniFaces 2 utilities methods/functions

Search on blog

Petition by Java EE Guardians

Twitter

miercuri, 23 septembrie 2015

[OmniFaces utilities (2.2)] Programmatically create and include a composite component with attributes


[OmniFaces utilities] The includeCompositeComponent() method create and include the composite component of the given library and resource name as child of the given UI component parent, set the given attributes on it and return the created composite component. This has the same effect as using <my:resourceName>. The given component ID must be unique relative to the current naming container parent and is mandatory for functioning of input components inside the composite, if any.

Starting with OmniFaces 2.2, this method was aligned to the new API.

Method:

Usage:

In OmniFaces 2.0, the includeCompositeComponent() method creates and include the composite component of the given library and resource name as child of the given UI component parent and return the created composite component without the possibility to set attributes on the composite component. As you can see here, the attributes are added to the returned composite component via setValueExpression().

Starting with OmniFaces 2.2, a new includeCompositeComponent() is available. This time, we can provide the attributes via a Map<String, Object>, as below:

·         passing attributes as Strings:

import org.omnifaces.util.Components;
...
UIComponent parent = Faces.getViewRoot().findComponent("welcomeId");

Map<String, Object> attributes = new HashMap<>();
attributes.put("value", "Welcome");
attributes.put("to", "Rafael Nadal");

Components.includeCompositeComponent(parent, "customs", "/welcome.xhtml", "welcomeMsgId", attributes);

·         passing attributes as Strings (evaluated value expressions):

import org.omnifaces.util.Components;
import org.omnifaces.util.Faces;
...
UIComponent parent = Faces.getViewRoot().findComponent("welcomeId");
       
Map<String, Object> attributes = new HashMap<>();
attributes.put("value", Components.createValueExpression("#{welcomeBean.value}", java.lang.String.class).getValue(Faces.getELContext()));
attributes.put("to", Components.createValueExpression("#{welcomeBean.to}", java.lang.String.class).getValue(Faces.getELContext()));

Components.includeCompositeComponent(parent, "customs", "/welcome.xhtml", "welcomeMsgId", attributes);

·         passing attributes value expressions:

import org.omnifaces.util.Components;
...
UIComponent parent = Faces.getViewRoot().findComponent("welcomeId");
       
Map<String, Object> attributes = new HashMap<>();
attributes.put("value", Components.createValueExpression("#{welcomeBean.value}", java.lang.String.class));
attributes.put("to", Components.createValueExpression("#{welcomeBean.to}", java.lang.String.class));

Components.includeCompositeComponent(parent, "customs", "/welcome.xhtml", "welcomeMsgId", attributes);

Niciun comentariu :

Trimiteți un comentariu

JSF BOOKS COLLECTION

Postări populare

OmniFaces/JSF Fans

Follow by Email

Visitors Starting 4 September 2015

Locations of Site Visitors