[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:
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