Boa tarde a todos, bom estou estudando jsf 2 com primefaces vi alguns problemas onde consegui solucionar porem um deles não estou conseguindo, quando crio um filtro e faço o mapeamento dele no web.xml, ate ai tudo bem porem quando minha aplicação passa pelo filtro minha tela fica toda em branco. Estou usando jsf 2, faacelets e primefaces. E estou importando o css desssa forma
href="#{facesContext.externalContext.requestContextPath}/themes/redmond/skin.css"
.
Grato.
Por acaso no seu filtro tem uma chamada FilterChain.doFilter() em algum ponto?
Amigo tenta assim:
<h:graphicImage value=“http://#{facesContext.externalContext.request.serverName}:#{facesContext.externalContext.request.serverPort}/imagens/confirmar.gif” />
:twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:
ASS: A VOZ DO INFERNO!
Na verdade, com JSF2, a melhor maneira de se adicionar CSSs ou imagens à uma view é:
<h:outputStylesheet name="mycss.css" />
<h:graphicImage name="myimage.jpg" />
Considerando q tanto mycss.css quanto myimage.jpg estão em um diretório chamado resources e q o mesmo se encontra na raiz do projeto.
MyProject
+-WEB-INF
+-resources
+--mycss.css
+--myimage.jpg
Boa tarde,
bom na verdade ainda não fiz nada dentro do filtro, so dei um systrace msm para teste.
Meu filtro esta assim:
public class SemedFilter implements Filter{
@Override
public void destroy() {
System.out.println("SemedFilter.destroy()");
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
System.out.println("SemedFilter.doFilter()");
}
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("SemedFilter.init()");
}
}
As demais respostas agradeço e estarei testando para ver se funciona. Obrigado.
Os Filters da API de Servlets implementam um padrão Chain of Responsabilities. Nesse padrão é responsábilidade de cada “elo” da corrente dizer se o próximo “elo” vai ou ñ ser executado.
Teorias a parte, um Filter deve em algum momento chamar o método doFilter do objeto FilterChain q ele recebe por parametro, senão o restante da “corrente”, e isso inclui qualqer Filter, Servlet ou JSP, ñ será executado.
@WebFilter(urlPattern="/*")
public class SemedFilter implements Filter{
@Override
public void destroy() {
System.out.println("SemedFilter.destroy()");
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
System.out.println("SemedFilter.doFilter()");
chain.doFilter(req, resp); // Senão os demais componentes q participam dessa requisição (corrente) ñ serão executados.
}
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("SemedFilter.init()");
}
}
Cara realmente estava me esquecendo disso foi esse mesmo o erro, obrigado.