title: <h:inputText value not updating
body: <p>I have a simple form with an inputText and 2 commandButtons.  The inputText displays the backing bean's value fine, but when I change the value for the first time, the set method is not called, and thus the form submit with an empty value.  When I change it again, then the set method is called and everything works fine.  What is the cause and how can I solve it?</p>
  
  <pre><code>  &lt;h:panelGroup id="chatId"&gt;
      &lt;h:panelGrid rendered="#{chat.validUser == true}"&gt;
        &lt;h:form id="sendMsgForm" &gt;
          &lt;h:panelGroup id="chatId2"&gt;
            &lt;h:inputText id="chatInput" value="#{chat.msgTo}" autocomplete="off" &gt;
              &lt;f:ajax execute="@this @form" /&gt;
            &lt;/h:inputText&gt;
            &lt;h:commandButton value="Send" id="sendButton" action="#{chat.send}"&gt;
              &lt;f:ajax render=":chatLogId :chatId" /&gt;
            &lt;/h:commandButton&gt;    
            &lt;h:commandButton value="Bye" action="#{chat.bye}"&gt;
              &lt;f:ajax render=":chatLogId :chatId :chatUserId" /&gt;
            &lt;/h:commandButton&gt;
          &lt;/h:panelGroup&gt;
        &lt;/h:form&gt;
      &lt;/h:panelGrid&gt;
    &lt;/h:panelGroup&gt;
  </code></pre>
  
  <p>The backing bean code:</p>
  
  <pre><code>@SessionScoped
  public class Chat implements Serializable, ActionListener, ValueChangeListener {
    private String msgTo = "Start typing...";
    private boolean validUser = false;
  
    public void bye() {
      validUser = false;
      tc.disconnect();
    }
  
    public void send() {
      try {
        tc.sendMessage(msgTo);
        setMsgTo("");
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  
    // ...
  </code></pre>