mirar seam_reference: 6.12.2. Enabling Seam exception handling
You need to disable Facelets development mode in web.xml and Seam debug mode in
components.xml if you want your exception handlers to fire
--------
Las excepciones que sean gordas las podemos redirigir desde la misma excepción:
@Redirect(viewId="/failure.xhtml", end=true)
@ApplicationException
public class UnrecoverableApplicationException extends RuntimeException { ... }
Esta excepción hace que se redirija siempre que se propague fuera de la capa de componentes Seam. Asímismo finaliza la conversación.
-----
hay que declarar en el components.xml:
<core:resource-loader>
<core:bundle-names>
<value>messages</value>
</core:bundle-names>
</core:resource-loader>
---------
cualquiera de estas dos formas de coger los mensajes en la excepción funciona:
String msg1 = SeamResourceBundle.getBundle().getString("exception.myexception");
String msg2 = ResourceBundle.getBundle("messages", FacesContext.getCurrentInstance().getViewRoot().getLocale()).getString("exception.myexception");
-------------
En el messages.properties:
exception.message1=Eureka, dijo {0}
Esta excepción funciona:
import org.jboss.seam.core.Interpolator;
import org.jboss.seam.core.SeamResourceBundle;
public class MyException extends Exception {
@Override
public String getMessage() {
String msg1 = SeamResourceBundle.getBundle().getString(
"exception.message1");
String msg2 = Interpolator.instance().interpolate(msg1, "Arquímedes");
return msg2;
}
}
No hay comentarios:
Publicar un comentario