This content has been marked as final.
Show 3 replies
-
1. Re: Exception Handling Problem (2.0.1.GA) - empty view-id
pmuir Mar 19, 2008 12:28 PM (in response to rodrigoy)No.
-
2. Re: Exception Handling Problem (2.0.1.GA) - empty view-id
rodrigoy Mar 19, 2008 3:32 PM (in response to rodrigoy)It was working on 1.2.1. What happened?
-
3. Re: Exception Handling Problem (2.0.1.GA) - empty view-id
alessandro Mar 19, 2008 3:59 PM (in response to rodrigoy)Hi Rodrigo !
I use filters for this:public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (filterConfig != null){ //declarar um request "final", pq a classe ContextualHttpServletRequest exige que seja final final HttpServletRequest finalRequest= (HttpServletRequest)request; //classe interna necessária para que um servlet consiga ver qualquer componente Seam new ContextualHttpServletRequest(finalRequest) { @Override public void process() throws Exception { //PreviousUri é um wrapper simples que encapsula o endereço da requisicao em um componente Seam PreviousUri previousUri = (PreviousUri) org.jboss.seam.contexts.Contexts.getSessionContext().get("previousUri"); if(previousUri==null)previousUri = new PreviousUri(); previousUri.setValor(finalRequest.getRequestURI().substring(finalRequest.getContextPath().length())); //setando o componente no contexto Seam, agora é só usa-lo no pages.xml para redirecionamentos org.jboss.seam.contexts.Contexts.getSessionContext().set("previousUri",previousUri); } }.run(); chain.doFilter(request, response); } }
A simple wrapper component:
@Name("previousUri") public class PreviousUri { private String valor; public PreviousUri() { } public String getValor() { return valor; } public void setValor(String valor) { this.valor = valor; } @Override public String toString() { return valor; } }
The pages.xml:
<exception class="br.com.siq.infrastructure.exception.SiqFtpException"> <redirect view-id="#{previousUri}" > <message severity="ERROR">#{org.jboss.seam.handledException.message}</message> </redirect> </exception>