title: Empty id attribute is not allowed in JSF Composite component
body: <p>I am facing an issue "Empty id attribute is not allowed in JSF" while using the below mentioned composite component for a group of buttons (button's count can be 1 to 3)  (I use Mojarra 2-0-8 on Tomcat-7) . </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"
      xmlns:composite="http://java.sun.com/jsf/composite"&gt;
  
  
      &lt;composite:interface&gt;       
          &lt;composite:attribute name="buttonCount" /&gt;
          &lt;composite:attribute name="button1Id" /&gt;
          &lt;composite:attribute name="button1Style" /&gt;
          &lt;composite:attribute name="button1Action" /&gt;
          &lt;composite:attribute name="button2Id" /&gt;
          &lt;composite:attribute name="button2Style" /&gt;
          &lt;composite:attribute name="button2Action" /&gt;
          &lt;composite:attribute name="button3Id" /&gt;
          &lt;composite:attribute name="button3Style" /&gt;
          &lt;composite:attribute name="button3Action" /&gt;
  
      &lt;/composite:interface&gt;
      &lt;composite:implementation&gt;       
          &lt;h:commandButton  rendered = "#{cc.attrs.buttonCount ge '1'}" id="#{cc.attrs.button1Id}" styleClass="#{cc.attrs.button1Style}"&gt;
              &lt;f:ajax listener="#{cc.attrs.button1Action}" immediate="true"/&gt;                                     
          &lt;/h:commandButton&gt;
          &lt;h:panelGroup rendered = "#{cc.attrs.buttonCount ge '2'}"&gt;
              &lt;h:commandButton  id="#{cc.attrs.button2Id}" styleClass="#{cc.attrs.button2Style}"&gt;
                  &lt;f:ajax listener="#{cc.attrs.button2Action}" immediate="true"/&gt;                                     
              &lt;/h:commandButton&gt;
          &lt;/h:panelGroup&gt; 
          &lt;h:panelGroup rendered = "#{cc.attrs.buttonCount eq '3'}"&gt;
              &lt;h:commandButton  id="#{cc.attrs.button3Id}" styleClass="#{cc.attrs.button3Style}"&gt;
                  &lt;f:ajax listener="#{cc.attrs.button3Action}" immediate="true"/&gt;                                     
              &lt;/h:commandButton&gt;
          &lt;/h:panelGroup&gt; 
      &lt;/composite:implementation&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Use of the above CC.</p>
  
  <pre><code>&lt;Buttons:myButton txtHeader="Title" txtDescription="text1"
                      txtAction="TextAction." button1Style="btnSave" buttonCount ="1" button1Id="btnSaveConf" button1Action="#{MyBean.save()}"&gt;&lt;/Buttons:myButton&gt;
  </code></pre>
  
  <p>is there any better way to dynamically generate buttons based on a count or any simillar input form the main page.
  note:- id, styles and action should differ in name.</p>