myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <>
Subject Re: JSF EL does not allow method calls
Date Mon, 16 Feb 2009 09:18:34 GMT
Madhav Bhargava schrieb:
> Hi All,
> I have a requirement wherein I have to disable UI components based on
> whether there are any error messages in the Message Queue (t:messages).
> facesContext is an implicit object so I thought of using it like -
> #{facesContext.getMessages.hasNext} However when it was not working
> because you can only specify properties of a class and JSF variable and
> property resolver will then internally try and call the getter/setter of
> that property.
> I find that rather limiting because I do not find the need to define a
> class level property when all I need is to process and output a Boolean.
> Is there any way apart from overriding the
> PropertyResolver/VariableResolver?

No, EL does not allow "method calls". It only allows reading/writing

However isn't this enough for what you want to do?

You could create a simple class:
  public class MessageChecker {
    public boolean isMessagePresent() {
      return FacesContext.currentInstance().getMessages().hasNext();

Then register this class as an app-scope managed bean.

JSF components can then do

Yes this means creating a trivial class, and having an instance of it in
memory in order to call a static method from the JSF components. This
could be considered ugly. But on the other hand, the JSF pages are now
much better isolated from the details of the implementation.

-- Emails in "mixed" posting style will be ignored
-- (

View raw message