Class MassAttribute
- java.lang.Object
-
- jakarta.faces.view.facelets.TagHandler
-
- org.omnifaces.taghandler.MassAttribute
-
- All Implemented Interfaces:
FaceletHandler
public class MassAttribute extends TagHandler
The <o:massAttribute> sets an attribute of the given name and value on all nested components, if they don't already have an attribute set. On boolean attributes like
disabled,readonlyandrendered, any literal (static) attribute value will be ignored and overridden. Only if they have already a value expression#{...}as attribute value, then it won't be overridden. This is a technical limitation specifically for boolean attributes as they don't default tonull.Usage
For example, the following setup
<o:massAttribute name="disabled" value="true"> <h:inputText id="input1" /> <h:inputText id="input2" disabled="true" /> <h:inputText id="input3" disabled="false" /> <h:inputText id="input4" disabled="#{true}" /> <h:inputText id="input5" disabled="#{false}" /> </o:massAttribute>will set thedisabled="true"attribute ininput1,input2andinput3as those are the only components without a value expression on the boolean attribute.As another general example without booleans, the following setup
<o:massAttribute name="styleClass" value="#{component.valid ? '' : 'error'}"> <h:inputText id="input1" /> <h:inputText id="input2" styleClass="some" /> <h:inputText id="input3" styleClass="#{'some'}" /> <h:inputText id="input4" styleClass="#{null}" /> </o:massAttribute>will only set thestyleClass="#{component.valid ? '' : 'error'}"attribute ininput1as that's the only component on which the attribute is absent. Do note that the specified EL expression will actually be evaluated on a per-component basis.To target a specific component (super)class, use the
targetattribute. The example below skips labels (as that would otherwise fail in the example below because they don't have thevalidproperty):<o:massAttribute name="styleClass" value="#{component.valid ? '' : 'error'}" target="jakarta.faces.component.UIInput"> <h:outputLabel for="input1" /> <h:inputText id="input1" /> <h:outputLabel for="input2" /> <h:inputText id="input2" /> <h:outputLabel for="input3" /> <h:inputText id="input3" /> </o:massAttribute>Since OmniFaces 3.10, the
targetattribute supports a commaseparated string.- Since:
- 1.8
- Author:
- Bauke Scholtz
-
-
Field Summary
-
Fields inherited from class jakarta.faces.view.facelets.TagHandler
nextHandler, tag, tagId
-
-
Constructor Summary
Constructors Constructor Description MassAttribute(TagConfig config)The tag constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidapply(FaceletContext context, UIComponent parent)-
Methods inherited from class jakarta.faces.view.facelets.TagHandler
getAttribute, getRequiredAttribute, toString
-
-
-
-
Constructor Detail
-
MassAttribute
public MassAttribute(TagConfig config)
The tag constructor.- Parameters:
config- The tag config.
-
-
Method Detail
-
apply
public void apply(FaceletContext context, UIComponent parent) throws IOException
- Throws:
IOException
-
-