title: primefaces requiredMessage gets lost when p:autoComplete moved into custom component
body: <p>I'm using PrimeFaces in a pretty standard Java web app (jsf-2) and am having an issue with my required message displaying when I move a p:autoComplete component into it's own custom component.. </p>
  
  <p>first, the p:autoComplete when it's on the page itself - this is working fine (simplified):</p>
  
  <pre><code>&lt;h:panelGrid  id="newRoleAdminGrid" &gt;
  
              &lt;p:autoComplete id="newRoleAdminPerson"
                              style="position: relative; padding-right:5px"
                              value="#{roleList.newRoleAdminPerson}"
                              var="personVar" 
                              itemValue="#{personVar}" 
                              itemLabel="#{personVar.fullFamiliarName}"
                              forceSelection="true"
                              completeMethod="#{personAutoComplete.byGeneralCriteria}"
                              converter="PersonConverter"
                              minQueryLength="3"
                              maxResults="50" 
                              scrollHeight="400"
                              size="50"
                              required="true" 
                              requiredMessage="admin name is requiredd"
                              title="enter users first name, last name or login" &gt;
              &lt;/p:autoComplete&gt; 
  
              &lt;h:message for="newRoleAdminPerson" class="redError"/&gt;
  
              &lt;p:commandButton value="add" ajax="true" 
                               update="roleAdminTable,newRoleAdminGrid"
                               id="addRoleAdminBtn"
                               actionListener="#{roleList.newRoleAdmin}"
                               style="margin:5px;"
                               icon="ui-icon-plus"/&gt;
          &lt;/h:panelGrid&gt;
  </code></pre>
  
  <p>see that h:message above? that works perfect and displays when the value is blank, or it doesnt pass the PersonConverter... </p>
  
  <p>however I have this same component all over my app, so i created a custom component. </p>
  
  <p>here's the component:</p>
  
  <pre><code>&lt;cc:interface&gt;
      &lt;cc:attribute name="id" type="String" required="true" /&gt;
      &lt;cc:attribute name="person" type="com.foo.bar.model.Person" required="true" /&gt;
      &lt;cc:attribute name="size" type="int" required="false" default="50" /&gt;
      &lt;cc:attribute name="required" type="boolean" required="false" default="false" /&gt;
      &lt;cc:attribute name="requiredMessage" type="String" required="false" default="required" /&gt;
  &lt;/cc:interface&gt;
  
  &lt;!-- IMPLEMENTATION --&gt;
  
  &lt;cc:implementation&gt;
  
      &lt;p:autoComplete id="#{cc.attrs.id}"
                      style="position: relative; padding-right:5px"
                      value="#{cc.attrs.person}"
                      var="personVar" 
                      itemValue="#{personVar}" 
                      itemLabel="#{personVar.fullFamiliarName}"
                      forceSelection="true"
                      completeMethod="#{personAutoComplete.byGeneralCriteria}"
                      converter="PersonConverter"
                      minQueryLength="3"
                      maxResults="50" 
                      scrollHeight="400"
                      size="#{cc.attrs.size}"
                      required="#{cc.attrs.required}" 
                      requiredMessage="#{cc.attrs.requiredMessage}"
                      title="enter users first name, last name or login" &gt;
      &lt;/p:autoComplete&gt;
  
      &lt;h:message for="#{cc.attrs.id}" class="redError"/&gt;
  
  &lt;/cc:implementation&gt;
  </code></pre>
  
  <p>and here's what code looks like now (that uses the custom component):</p>
  
  <pre><code>&lt;h:panelGrid  id="newRoleAdminGrid" &gt;
  
              &lt;my:personLookup id="newRoleAdminPerson"  
                               person="#{roleList.newRoleAdminPerson}"
                               required="true" requiredMessage="#{propUtil.appShortName} Admin Name is required"/&gt;
  
              &lt;h:message for="newRoleAdminPerson" class="redError"/&gt;
  
              &lt;p:commandButton value="add" ajax="true" 
                               update="roleAdminTable,newRoleAdminGrid"
                               id="addRoleAdminBtn"
                               actionListener="#{roleList.newRoleAdmin}"
                               style="margin:5px;"
                               icon="ui-icon-plus"/&gt;
  
          &lt;/h:panelGrid&gt;
  </code></pre>
  
  <p>when i run it this way, the component works - if the user leaves it blank, or it doenst pass vaildation the primefaces border turns red, but the h:message never displays the actual error (requiredMessage or what is set in the PersonConverter)</p>
  
  <p>i've tried quite a few different variations of this, such as setting the id only in the implementation or just in the my:personLookup, or both. </p>
  
  <p>has anyone run across this before? am i doing or setting something incorrectly? thank you for you time!!</p>