Hallo,
Ich hatte in JSF 1.2 die Möglichkeit folgende Klasse zu überschreiben, um eine gezielte Meldung der JSF Validation Meldungen zu erhalten. Diese Möglichketi habe ich deshalb geschaffen, damit ich den Error Text nach einem Roundtrip direkt auf meiner Seite darstellen kann. (habe sehr verschachtelte Facelets im Einsatz).
Überschriebene Klasse:
org.ajax4jsf.component.AjaxViewRoot
Methode: processEvents:
Jetzt suche ich genau dieselbe Stelle für JSF 2.0. Ich habe bereits mit den ExceptionHandlerFactory experimentiert, hier kommen allerdings die Fehlermeldungen nicht an.
Eventuell im Bereich PhaseListener ?
Vielleicht hat jemand eine Idee für mich?
Danke,
Klaus
Ich hatte in JSF 1.2 die Möglichkeit folgende Klasse zu überschreiben, um eine gezielte Meldung der JSF Validation Meldungen zu erhalten. Diese Möglichketi habe ich deshalb geschaffen, damit ich den Error Text nach einem Roundtrip direkt auf meiner Seite darstellen kann. (habe sehr verschachtelte Facelets im Einsatz).
Überschriebene Klasse:
org.ajax4jsf.component.AjaxViewRoot
Methode: processEvents:
Code:
public void processEvents( FacesContext context, EventsQueue phaseEventsQueue, boolean havePhaseEvents ) {
FacesEvent event;
while ( havePhaseEvents ) {
try {
event = phaseEventsQueue.remove();
UIComponent source = event.getComponent();
try {
source.broadcast( event );
}
catch ( AbortProcessingException ex ) {
if ( SUPER_LOGGER.isErrorEnabled() ) {
UIComponent component = event.getComponent();
String id = null != component ? component.getClientId( context ) : "";
SUPER_LOGGER.error( "Error processing faces event for the component " + id, ex );
}
Throwable root = CommonUtils.getRootCause( ex );
if ( ClientUtils.isFachException( root ) ) {
JsfUtils.addMessage( FacesMessage.SEVERITY_ERROR, root.getMessage() );
JsfUtils.getContext().renderResponse();
}
else {
throw ex;
}
}
// CHECKSTYLE OFF: RuntimeException
catch ( RuntimeException ex ) {
// CHECKSTYLE ON: RuntimeException
Throwable root = CommonUtils.getRootCause( ex );
if ( ClientUtils.isFachException( root ) ) {
logMessage( root );
JsfUtils.getContext().renderResponse();
}
else {
throw ex;
}
}
}
catch ( NoSuchElementException ex ) {
havePhaseEvents = false;
}
}
}
Jetzt suche ich genau dieselbe Stelle für JSF 2.0. Ich habe bereits mit den ExceptionHandlerFactory experimentiert, hier kommen allerdings die Fehlermeldungen nicht an.
Eventuell im Bereich PhaseListener ?
Vielleicht hat jemand eine Idee für mich?
Danke,
Klaus