Is it possible to test for enum equality in JSF?
E.g. where stuff
is an enum Stuff
:
<h:outputText value="text" rendered="#{mrBean.stuff == mrsBean.stuff}"/>
Is it possible to test for enum equality in JSF?
E.g. where stuff
is an enum Stuff
:
<h:outputText value="text" rendered="#{mrBean.stuff == mrsBean.stuff}"/>
If you have the enum
you can reference the enums in your jsf pages like so:
I'm not so sure about the String evaluation, due to something I stumbled upon while refactoring some code to use enums: if you have a typo in your status String, ie:
you will actually get a runtime error when you hit the page because the EL parser will try to coerce 'YESSIR' into a
Status
enum and fail.You could define testing methods on the enum, see the following source.
Enum definition:
JSF code:
This is actually more EL related than JSF related. The construct as you posted is valid, but you should keep in mind that enum values are in EL 2.1 are actually evaluated as
String
values. IfString.valueOf(mrBean.getStuff())
equalsString.valueOf(mrsBean.getStuff())
, then your code example will render. In EL 2.2 the same construct will work, but they are evaluated as true enums.Note that it indeed requires a getter method to return the enum value. Given the fact that enums are treated as
String
, you can in essence also just do:In current EL 2.2 version, you cannot access enum values directly like this:
This is only possible when you use OmniFaces
<o:importConstants>
: