2011-12-07 217 views

回答

5

您可以用PhaseListener掛鉤PhaseId.RENDER_RESPONSEbeforePhase()

例如

public class MessagesListener implements PhaseListener { 

    @Override 
    public PhaseId getPhaseId() { 
     return PhaseId.RENDER_RESPONSE; 
    } 

    @Override 
    public void beforePhase(PhaseEvent event) { 
     Iterator<FacesMessage> messageIterator = event.getFacesContext().getMessages(); 

     while (messageIterator.hasNext()) { 
      FacesMessage message = messageIterator.next(); 
      // ... 
     } 
    } 

    @Override 
    public void afterPhase(PhaseEvent event) { 
     // NOOP. 
    } 

} 

讓它運行,如faces-config.xml如下注冊它:

<lifecycle> 
    <phase-listener>com.example.MessagesListener</phase-listener> 
</lifecycle> 
+0

謝謝BalusC。它幫助了很多。 –

+0

不客氣。 – BalusC