title: What does the condition #{facesContext.postback and not facesContext.renderResponse} mean?
body: <p>I was checking out the code for <a href="https://github.com/omnifaces/showcase/blob/master/src/main/webapp/WEB-INF/templates/showcase.xhtml" rel="nofollow">this template</a> from the <a href="http://showcase.omnifaces.org/components/tree" rel="nofollow">OmniFaces Showcase app</a>, when I encountered the following condition used in a <code>p:selectOneMenu</code>:</p>
  
  <pre><code>disabled="#{facesContext.postback and not facesContext.renderResponse}"
  </code></pre>
  
  <p>From using the app, it seemed that the <em>selectOneMenu</em> is never disabled, so what does this code really do?</p>
  
  <p>I know that <code>facesContext.postback</code> is <code>true</code> whenever the page is resultant from POST requests generated by JSF components (<em>commandButton/commandLink</em>, etc), but what would be the usual expected state of <code>facesContext.renderResponse</code> when evaluated in the View?</p>
  
  <p><strong>UPDATE:</strong> oops, just now I saw the comment: <em>They're disabled in other phases than render response, because they otherwise complain that the model value cannot be set even though there's no form</em>.</p>
  
  <p>So, I'm guessing the condition is evaluated several times during Faces lifecycle, and the component is disabled until the last state (renderResponse) is reached, when <code>facesContext.renderResponse</code> evaluates to <code>true</code>, the whole expression evaluates to <code>false</code> and the component is then enabled. Is that about right?</p>