webtier@glassfish.java.net

Generic way to iterate over UIComponentBase$AttributesMap

From: <webtier_at_javadesktop.org>
Date: Wed, 20 Oct 2010 00:16:51 PDT

Dear Community

We are trying to develop a Composite Component Library (CCL) to standardise the usage of our form items. A call looks as follows:

<less:formItem type="calendar" label="Kalender" required="true">
   <f:attribute name="showOn" value="button"/>
   <f:attribute name="nextAttr" value="anyValue"/>
</less:formItem>

On the <cc:interface/> there is a set of defined attributes as "type", "label" and so on. In addition we would like to freely apply attributes by using <f:atttribute/> and apply them within the CCL. Since the set of the attributes specified with <f:attribute/> is undefined in the CCL we are looking for a generic way to iterate over the given attributes to apply them within the CCL by using <f:attribute/> again.

When we try to use the following EL-Expression #{cc.getAttributes().keySet()} in the CCL we get the following exception.

javax.el.ELException: /resources/lessFaces/formItem.xhtml @118,76 value="#{cc.getAttributes().keySet()}": java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class javax.faces.component.UIComponentBase$AttributesMap with modifiers "public"
        at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:107)

Is there any solution for our requirement?
For your support many thanks in advance ... Raffaele
[Message sent by forum member 'rmerico']

http://forums.java.net/jive/thread.jspa?messageID=485668