title: "#{serviceCatalogueController.allMap[category.key]}": Property 'key' not found on type java.util.HashMap$KeySet
body: <p>I am trying to populate a map with values from inputText and inputTextArea. Also Date. In the backbean I have a map of like Map></p>
  
  <p>Basically, a Category can have many Attributes. These Attributes are input fields. For multiselect, dropdown and single select all i need is to set the attribute. But for TextArea, textField and Date I need to set the attribute plus the value which is why I have the String.</p>
  
  <p>my jsf looks like</p>
  
  <pre><code>              &lt;p:dataList id="serviceCatalogueCriteria" var="category" value="#{serviceCatalogueController.allMap.keySet()}"&gt;
                      &lt;div id="categoryDiv" style="overflow: hidden;"&gt;
                          &lt;div class="category-header"&gt;
                              &lt;h:outputText value="#{serviceCatalogueController.allMap[category.key]}" /&gt;
                          &lt;/div&gt;
                          &lt;div&gt;
                              &lt;!-- Text field, text area or date --&gt;
                              &lt;div class="category-text"&gt;
                                  &lt;ui:fragment
                                      rendered="#{categoryService.isTextField(category) or categoryService.isTextArea(category) or categoryService.isDate(category)}"&gt;
                                      &lt;ui:fragment
                                          rendered="#{categoryService.isTextField(category)}"&gt;
                                          &lt;p:dataList var="attribute" value="#{category.entrySet()}" &gt;
                                              &lt;p:inputText 
                                                  value="#{category[attribute.key]}" /&gt;
                                          &lt;/p:dataList&gt;
                                      &lt;/ui:fragment&gt;
                                      &lt;ui:fragment
                                          rendered="#{categoryService.isTextArea(category)}"&gt;
                                          &lt;p:dataList var="attribute" value="#{category.entrySet()}" &gt;
                                              &lt;p:inputTextarea rows="3" cols="70"
                                                  value="#{category[attribute.key]}"/&gt;
                                          &lt;/p:dataList&gt;
                                      &lt;/ui:fragment&gt;
                                      &lt;ui:fragment rendered="#{categoryService.isDate(category)}"&gt;
                                          &lt;p:dataList var="attribute" value="#{category.entrySet()}" &gt;
                                              &lt;p:calendar
                                                  value="#{category[attribute.key]}"
                                                  showOn="button"&gt;
                                              &lt;/p:calendar&gt;
                                          &lt;/p:dataList&gt;
                                      &lt;/ui:fragment&gt;
                                  &lt;/ui:fragment&gt;
                              &lt;/div&gt;
                      &lt;p:separator /&gt;
                  &lt;/p:dataList&gt;
  </code></pre>
  
  <p>And my back bean looks like </p>
  
  <pre><code>private Map&lt;Category,Map&lt;Attribute,String&gt;&gt; allMap;
  //setter and getter
  </code></pre>
  
  <p>The error I get is </p>
  
  <pre><code>javax.el.PropertyNotFoundException: /resources/PWAssessment/ServiceCatalogueFilters.xhtml @24,84 value="#{serviceCatalogueController.allMap[category.key]}": Property 'key' not found on type java.util.HashMap$KeySet
  </code></pre>
  
  <p>Why would this not work?</p>