RENDER_RESPONSE is called everytime the portlet container asks a portlet to render itself. Because a phase listener is configured per web application, you'll get the same phase listener called for each of the portlets in your application. So, you should get at least two calls in your case. Why you are getting more perhaps has to do with how many times Liferay call the render method of your portlets. Or perhaps you have several PhaseListener configuration?
-----Original Message----- From: Pfau, Oliver [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 27, 2006 2:23 AM To: MyFaces Discussion Subject: AW: PhaseListener getting called multiple times I have also took a look at the jsf phases in a JSF portlet application with 2 portlets on a page in Liferay. I have a phase listener in each backing bean of the portlets implemented an anonymous class printing information at each phase with this strucutre: <portlet-name> <faces-context-hash-code> <phase> <bean-hash-code> <bean-class-name> On the first invokation of the page (no user action), only the following is done: Navi Portlet 3775490 : Before Phase: RENDER_RESPONSE(6) Bean: 3243465 .PDNAVBean Navi Portlet 3775490 : After Phase: RENDER_RESPONSE(6) Bean: 3243465 .PDNAVBean I don't understand this, because my seconde portlet (details) is rendered also. Now the user has clicked a link in the navi portlet which stores a session variable which is read from details portlet: Navi Portlet 32053749 : Before Phase: RESTORE_VIEW(1) Bean: 3243465 .PDNAVBean Details Portlet 32053749 : Before Phase:RESTORE_VIEW(1) Bean: 32615754 .PDNAVDetailsBean Details Portlet 32053749 : After Phase RESTORE_VIEW(1) Bean: 32615754 .PDNAVDetailsBean Navi Portlet 32053749 : After Phase: RESTORE_VIEW(1) Bean: 3243465 .PDNAVBean Navi Portlet 32053749 : Before Phase: APPLY_REQUEST_VALUES(2) Bean: 3243465 .PDNAVBean Details Portlet 32053749 : Before Phase:APPLY_REQUEST_VALUES(2) Bean: 32615754 .PDNAVDetailsBean Details Portlet 32053749 : After Phase APPLY_REQUEST_VALUES(2) Bean: 32615754 .PDNAVDetailsBean Navi Portlet 32053749 : After Phase: APPLY_REQUEST_VALUES(2) Bean: 3243465 .PDNAVBean Navi Portlet 32053749 : Before Phase: PROCESS_VALIDATIONS(3) Bean: 3243465 .PDNAVBean Details Portlet 32053749 : Before Phase:PROCESS_VALIDATIONS(3) Bean: 32615754 .PDNAVDetailsBean Details Portlet 32053749 : After Phase PROCESS_VALIDATIONS(3) Bean: 32615754 .PDNAVDetailsBean Navi Portlet 32053749 : After Phase: PROCESS_VALIDATIONS(3) Bean: 3243465 .PDNAVBean Navi Portlet 32053749 : Before Phase: UPDATE_MODEL_VALUES(4) Bean: 3243465 .PDNAVBean Details Portlet 32053749 : Before Phase:UPDATE_MODEL_VALUES(4) Bean: 32615754 .PDNAVDetailsBean Details Portlet 32053749 : After Phase UPDATE_MODEL_VALUES(4) Bean: 32615754 .PDNAVDetailsBean Navi Portlet 32053749 : After Phase: UPDATE_MODEL_VALUES(4) Bean: 3243465 .PDNAVBean Navi Portlet 32053749 : Before Phase: INVOKE_APPLICATION(5) Bean: 3243465 .PDNAVBean Details Portlet 32053749 : Before Phase:INVOKE_APPLICATION(5) Bean: 32615754 .PDNAVDetailsBean ----- selection stored in portlet session from Navi Portlet Details Portlet 32053749 : After Phase INVOKE_APPLICATION(5) Bean: 32615754 .PDNAVDetailsBean _____selection read from portlet session from Details Portlet Navi Portlet 32053749 : After Phase: INVOKE_APPLICATION(5) Bean: 3243465 .PDNAVBean Navi Portlet 32053749 : Before Phase: RENDER_RESPONSE(6) Bean: 3243465 .PDNAVBean Details Portlet 32053749 : Before Phase:RENDER_RESPONSE(6) Bean: 32615754 .PDNAVDetailsBean Details Portlet 32053749 : After Phase RENDER_RESPONSE(6) Bean: 32615754 .PDNAVDetailsBean Navi Portlet 32053749 : After Phase: RENDER_RESPONSE(6) Bean: 3243465 .PDNAVBean Navi Portlet 23107587 : Before Phase: RENDER_RESPONSE(6) Bean: 3243465 .PDNAVBean Details Portlet 23107587 : Before Phase:RENDER_RESPONSE(6) Bean: 32615754 .PDNAVDetailsBean Details Portlet 23107587 : After Phase RENDER_RESPONSE(6) Bean: 32615754 .PDNAVDetailsBean Navi Portlet 23107587 : After Phase: RENDER_RESPONSE(6) Bean: 3243465 .PDNAVBean Why is the RENDER_RESPONSE phase called so often ? ..and with different FacesContext objects ? -----Ursprüngliche Nachricht----- Von: Volker Weber [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 26. September 2006 22:38 An: MyFaces Discussion Betreff: Re: PhaseListener getting called multiple times Are you sure that the phaseListener is not more than one time configured? Put a log statement in the Constructor to see how many instances are created. 2006/9/26, Iordanov, Borislav (GIC) <[EMAIL PROTECTED]>: > > > > > Are you using this in portlets? > > > > ________________________________ > > > From: a k [mailto:[EMAIL PROTECTED] > Sent: Tuesday, September 26, 2006 4:29 PM > To: MyFaces Discussion > Subject: Re: PhaseListener getting called multiple times > > > > > > I have this in my Listener impl class: > > public PhaseId getPhaseId() { > return PhaseId.RENDER_RESPONSE; > } > > Not sure why it is getting called exactly 4 times. Also, there are more > phases than 4. > > > > > On 9/26/06, John <[EMAIL PROTECTED]> wrote: > > > It sounds like it's getting called for each phase. > > > > Be sure and define a getPhaseId() so it knows what phase to pay attention > to. > > > > > > public PhaseId getPhaseId() { > return PhaseId.RESTORE_VIEW; > } > > > ________________________________ > > > From: a k [mailto:[EMAIL PROTECTED] > Sent: Tuesday, September 26, 2006 1:21 PM > To: MyFaces Discussion > Subject: PhaseListener getting called multiple times > > > Hi, > > I followed this article to show more meaningful validation messages at the > top of the page. > http://www.oracle.com/technology/pub/articles/masterj2ee/j2ee_wk7.html > > What I am noticing is that the Phase Listener is getting called multiple > times (4 to be precise) per request. So instead of getting something like > "Field Name: Please enter a valid value." I am getting "Field Name: Field > Name: Field Name: Field Name: Please enter a valid value." > > Could some one point me in the right direction? > > Thanks! > > > >

