Olá pessoal, espero que alguém nos ajude com esse incômodo que nos atormnta a dias.
Vamos lá, eu e meu colega estamos fazendo um trabalho da faculdade, onde estamos desenvolvendo uma aplicacao jsf, estamos utilizando o netbeans e o framework icefaces.
O problema em geral: redirecionamento de páginas
temos várias ocasiões em que o usuario clica num botao(componente commandButton), é feita a verificacao e após esta, ele é redirecionado para outra página. ex: tela de login, se o usuario e senha bater ele é enviado para outra tela
Problemas específicos:
1 - ao redirecionar pra outra pagina, a url da barra de endereços não muda, continua a mesma
2 - devido ao problema anterior, o botão do browser para retornar à pagina anterior fica desabilitado(pois pro browser, é como se mudasse o conteudo da janela sem sair da mesma página)
3 - ao redirecionar para uma simples pagina html com frame e frameset o browser exibe apenas o texto "TODO write content "
Como estamos fazendo isso:
Criamos uma classe e um metodo estático, cuja unica funcao é redirecionar pra a url passada por parametro
Classe UtilWeb
package delivery.util;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletResponse;
public class UtilWeb {
/* Redireciona a pagina atual para outra passada
como parametro
*/
public static String irParaURL(String url){
String retorno = null;
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
try {
response.sendRedirect(url);
FacesContext.getCurrentInstance().responseComplete();
}
catch (Exception ex) {
ex.printStackTrace();
}
return retorno;
}
}
Código no evento do Botao
public String btLogar_action() {
//retirei os codigos de validacao
UtilWeb.irParaURL("/Delivery/CliContaIndex.html");
return null;
}
Amigos, agradeço qualquer ajuda
Venom