title: Why is BackingBean method called multiple times when requesting facelet?
body: <p>I'm working and learning about JSF + Facelets these days. I have a BackingBean and a Facelet xHTML page. When I request the facelet-page (only one time) the backing-bean-method is called multiple times.</p>
  
  <p>What could be the reason for this? </p>
  
  <p>I can't see anything special. Thanks in advance.</p>
  
  <p>Here is the facelet:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
  &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
  &lt;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"&gt;
  &lt;head&gt;
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
  &lt;title&gt;Insert title here&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
  &lt;ui:composition template="index.xhtml"&gt;
      &lt;ui:define name="content"&gt;
          &lt;h:form&gt;Name: &lt;h:inputText id="nameFilterPattern" value="#{kundenBackingBean.nameFilterPattern}" /&gt;&lt;h:commandButton value="Suchen"/&gt;&lt;/h:form&gt;
          &lt;h:dataTable var="kunde" value="#{kundenBackingBean.kunden}" rowClasses="rowHighlight, rowOrdinary"&gt;
              &lt;h:column&gt; 
                  &lt;f:facet name="header"&gt;
                      &lt;h:outputText value="Kundennr" /&gt;
                  &lt;/f:facet&gt;
                  &lt;h:outputText value="#{kunde.kundenNr}"/&gt;
              &lt;/h:column&gt;
              &lt;h:column&gt;
                  &lt;f:facet name="header"&gt;
                      &lt;h:outputText value="Name" /&gt;
                  &lt;/f:facet&gt;
                  &lt;h:outputText value="#{kunde.name}"/&gt;
              &lt;/h:column&gt;
              &lt;h:column&gt;
                  &lt;f:facet name="header"&gt;
                      &lt;h:outputText value="Vorname" /&gt;
                  &lt;/f:facet&gt;
                  &lt;h:outputText value="#{kunde.vorname}"/&gt;
              &lt;/h:column&gt;
              &lt;h:column&gt;
                  &lt;h:outputLink&gt;Details&lt;/h:outputLink&gt;
              &lt;/h:column&gt;
          &lt;/h:dataTable&gt;
      &lt;/ui:define&gt;
  &lt;/ui:composition&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>And here is the backing-bean. The method getKunden is called multiple times:</p>
  
  <pre><code>@ManagedBean
  @SessionScoped
  public class KundenBackingBean extends AbstractBackingBean {
  
      private String nameFilterPattern;
  
      public List&lt;Kunde&gt; getKunden(){
          System.out.println("getKunden");
          return getApplication().getKunden(getNameFilterPattern());
      }
  
      public String getNameFilterPattern() {
          return nameFilterPattern;
      }
  
      public void setNameFilterPattern(String nameFilterPattern) {
          System.out.println("Name filter: " + nameFilterPattern);
          this.nameFilterPattern = nameFilterPattern;
      }
  
  }
  </code></pre>