Рендеринг страницы JSF дважды? - PullRequest
0 голосов
/ 23 ноября 2011

Внезапно мой JSF 2 рендерит каждую страницу дважды (с Eclipse и Tomcat.) Независимо от того, насколько это просто.Например:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.prime.com.tr/ui">

<h:body>
   <h:outputText value="What's going on?"></h:outputText>
</h:body>

генерирует результат, который выглядит следующим образом:

Что происходит?В чем дело?

Если я добавлю более сложные вещи, они также появятся на странице дважды.Я попытался перезапустить и все, но не повезло.Так, что происходит?

Редактировать:

Спасибо за ваш ответ всем.r0ast3d Я изменил свой web.xml, чтобы добавить фильтр, и когда я удалил записи, двойное зрение исчезло.Но я хочу фильтр ... У меня были следующие записи:

  <filter>
    <filter-name>dontCache</filter-name>
    <filter-class>com.company.auctions.ui.DisableCacheFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>dontCache</filter-name>
    <url-pattern>*.jsf</url-pattern>
  </filter-mapping>

Это метод doFilter:

public void doFilter(ServletRequest request, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    // TODO Auto-generated method stub
    // place your code here

    System.out.println("DisableCacheFilter.doFilter CALLED");

    HttpServletResponse response = (HttpServletResponse) res;
    response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
    response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
    response.setDateHeader("Expires", 0); // Proxies.
    chain.doFilter(request, response);

    // pass the request along the filter chain
    chain.doFilter(request, response);
}

Что я делаю не так?

1 Ответ

3 голосов
/ 24 ноября 2011

Ответ прямо в вашем doFilter методе. Вы звоните chain.doFilter(request, response) дважды.

...