Pessoal, estou com o seguinte problema. Tenho a seguinte estrutura de páginas JSF
:
– páginas web
loginCliente.xhtml
---- privado
------ trocaSenhaCliente.xhtml
a página loginCliente é chamada ao carregar o projeto. No momento de entrar, é checado se o cliente deve ser a troca de senha efetuada. Nesse caso, é direcionado para a página trocaSenhaCliente (que está em uma pasta privada).
Na página trocaSenhaCliente é executado o meu MB, que no método trocaSenha (depois das validações, análises e atualizações), realiza o seguinte:
public class EmpresaMb extends ClienteDB {
public String trocarSenha() {
return "../loginClente.jsf?faces-redirect=true";
}
}
Só que toda vez que esse código é executado, ele não consegue enxergar a página loginCliente. Aparece a seguinte mensagem:
Não foi possível encontrar um caso de navegação correspondente na ID de exibição '/privado/trocaSenhaCliente.xhtml'
para a ação'#{empresaMb.trocarSenha}'
com o resultado '../loginClente.jsf?faces-redirect=true'
Eu tenho o seguinte filtro de navegação:
public class FiltroLogin implements Filter {
@Override
public void init( FilterConfig filterConfig ) throws ServletException {
}
@Override
public void doFilter( ServletRequest req, ServletResponse res, FilterChain chain ) throws IOException, ServletException{
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
if( !this.authorize( (HttpServletRequest) req )) {
if (!request.getRequestURI().endsWith("login.jsf") || !request.getRequestURI().endsWith("loginCliente.jsf") ) {
if (request.getRequestURI().endsWith("login.jsf")) {
response.sendRedirect("../login.jsf");
} else {
response.sendRedirect("../loginCliente.jsf");
}
}else{
chain.doFilter(req, res);
}
} else {
//Desativa o cache do browser
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
//Processa request e response
chain.doFilter( req, res );
}
}
@Override
public void destroy() {
}
//Metodo que verifica o bean em sessao se esta logado.
private boolean authorize( HttpServletRequest req ) {
boolean retorno = true;
Object login = null;
HttpSession session = req.getSession(false);
if (session != null) {
login = (Cliente) session.getAttribute("cliente");
if (login==null) {
login = (Escritorio) session.getAttribute("escritorio");
if (login==null) {
retorno=false;
}
}
} else {
retorno = false;
}
return retorno;
}
}
Alguém pode me ajudar indicando o que pode estar errado?