title: JSF 2.0 AJAX re-renders more than the IDs I specify. Not sure if I have a fundamental misunderstanding or just a bug
body: <p>When I click on the logOutButton it seems as though it's re-rendering the ajaxR element also.  I would expect it to only re-render the IDs I have in the f:ajax render attribute.  Or maybe it's re-rendering the whole page.  The question is, why's it rendering the ajaxR element and/or the whole page and not just the IDs I've specified.</p>
  
  <p>To make sure I'm clear:  when I click on the logout button, the ajaxR element does not get rendered because of rendered="#{userIdBean.isLoggedIn}".</p>
  
  <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
  &lt;html lang="en"
      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:c="http://java.sun.com/jsp/jstl/core"
  &gt;
  &lt;h:head&gt;
      &lt;title&gt;SandBox&lt;/title&gt;
  &lt;/h:head&gt;
  &lt;h:body&gt;
  
      &lt;h1&gt;SandBox&lt;/h1&gt;    
      &lt;h:form id="form1"&gt;
  
          Registration:&lt;br&gt;&lt;/br&gt;
          Email: &lt;h:inputText value="#{regBean.email}"&gt;&lt;/h:inputText&gt;&lt;br&gt;&lt;/br&gt;
          User Id: &lt;h:inputText value="#{regBean.userId}"&gt;&lt;/h:inputText&gt;&lt;br&gt;&lt;/br&gt;
          Password: &lt;h:inputText id="passR" value="#{regBean.password}"&gt;&lt;/h:inputText&gt;&lt;br&gt;&lt;/br&gt;
  
          &lt;h:outputText rendered="#{userIdBean.isLoggedIn}" id="nodeL" value="Good Luck: #{userIdBean.userId}" style="font-weight:bold" /&gt;&lt;br&gt;&lt;/br&gt;
  
          &lt;h:commandButton value="Submit" type="submit" action="#{regBean.storeUserId}" /&gt;
          &lt;h:commandButton id="logOutButton" rendered="#{userIdBean.isLoggedIn}" value="Log Out" type="submit" action="#{loginBean.logoutUser}" &gt;
              &lt;f:ajax event="keyup" render="nodeL logOutButton"/&gt;
          &lt;/h:commandButton&gt;
          &lt;br&gt;&lt;/br&gt;
  
      &lt;h:outputText rendered="#{userIdBean.isLoggedIn}" value="AJAX Response: #{userIdBean.userId}"&gt;&lt;/h:outputText&gt;
  
      &lt;/h:form&gt;
  &lt;/h:body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Here's a snippet of the bean code.</p>
  
  <pre><code>public String logoutUser(){
          userIdBean.setIsLoggedIn(false);
          userIdBean.setUserId(null);
          return null;
      }
  </code></pre>