| Author |
com.sun.faces.facelets.tag.jsf.core.PhaseListenerHandler$LazyPhaseListener
|
Volodymyr Levytskyi
Ranch Hand
Joined: Mar 29, 2012
Posts: 187
|
|
Hello!
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!
|
 |
Tim Holloway
Saloon Keeper
Joined: Jun 25, 2001
Posts: 14491
|
|
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: 187
|
|
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: 187
|
|
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:
|
 |
 |
|
|
subject: com.sun.faces.facelets.tag.jsf.core.PhaseListenerHandler$LazyPhaseListener
|
|
|