aspose file tools
The moose likes JSF and the fly likes com.sun.faces.facelets.tag.jsf.core.PhaseListenerHandler$LazyPhaseListener Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of The Software Craftsman this week in the Agile forum!
JavaRanch » Java Forums » Java » JSF
Bookmark "com.sun.faces.facelets.tag.jsf.core.PhaseListenerHandler$LazyPhaseListener" Watch "com.sun.faces.facelets.tag.jsf.core.PhaseListenerHandler$LazyPhaseListener" New topic


Volodymyr Levytskyi
Ranch Hand

Joined: Mar 29, 2012
Posts: 505


Whereever I put my tag <f:phaseListener type="com.olympics.util.MessagePanelListener" /> I always receive this error in server.log:

The interesting thing that my phase listener com.olympics.util.MessagePanelListener is invoked and it outputs some info untill line :

There parent id is - j_id1 and searched component's id is - j_idt9!

Can anybody tell me how to resolve this?

Thank you!

True person is moral, false is right!
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16540

Two things will help.

1. Explicitly assign "id=" attributes to the XML elements of interest. That will make it easier to tell which ones are offending, since the generated IDs are unpredictable.

2. Provide a complete stack trace. All we can tell from your present example is that it failed. Not where or why.

Customer surveys are for companies who didn't pay proper attention to begin with.
Volodymyr Levytskyi
Ranch Hand

Joined: Mar 29, 2012
Posts: 505

Thank you for response!!!

I have already left the idea to use <f:phaseListener . By the way error in server.log was only one line which I provided.
Instead I decided to create my own jsf component as it serves better here. My goal is to create message panel which displays all messages queued on FacesContext.
Example: 'You are logged in successfully'. Problem - deferred value expression doesn't work. Code in my tag-class method setProperties(UIComponent component):

This sets value expression 'title' into my component 'UIMyMessage'.
Code that should write evaluated value expression into 'title' attribute

As a result title on my component is - /template.xhtml @87,90 title="#{bundle.Template_messagePanel}. It means that deferred expr. is not evaluated.
After I tried to change line 02 to:

It gave the following stack trace:

'This panel is to notify user about something' is bundle's title which I want to see as title.

Don't you know what it is wrong here?
Volodymyr Levytskyi
Ranch Hand

Joined: Mar 29, 2012
Posts: 505

I had custom component that extends UIOutput without custom renderer. Its attribute 'title' had to be evaluated to String from bundle via deferred value expression. In custom component I had property String title with normal getter and setter. Then I simply removed them and put this code:

To write evaluated title into my component:

I agree. Here's the link:
subject: com.sun.faces.facelets.tag.jsf.core.PhaseListenerHandler$LazyPhaseListener