Yes, that is basically what I was thinking of. It would be better to
use clientId instead of the component for the already processed list
though as you would want to support looping components like dataTable.
If this were to be made generic, being able to add a listener would be
awesome, so people could inject HTML before a tag or into the
attributes.
-Andrew
On Dec 15, 2007 4:42 AM, simon <[EMAIL PROTECTED]> wrote:
> Hmm..interesting suggestion, Andrew.
>
> So a custom responsewriter could potentially be written to allow the
> insertion of new attributes onto the html tag for any component?
>
> Is this what you were thinking of?
>
> startElement(String ename, UIComponent component) {
> // start xml element
> // if (component not in already-processed list)
> // for each key in component.getAttributes()
> // if key.startsWith("tunnelledAttribute:")
> // output (key, value) as xml attributes
> // store component in already-processed list
> }
>
> Then:
> <h:someTag ..>
> <f:attribute name="tunnelledAttribute:foo" value="bar"/>
>
> That might be interesting to add to the standard MyFaces
> ResponseWriter...
>
> Regards,
>
> Simon
>
>
> On Fri, 2007-12-14 at 19:54 -0700, Andrew Robinson wrote:
> > Most renderers will not give you access to the root element to be able
> > to add attributes. However, if the renderers are correctly using the
> > response writer, they should be calling startElement(String,
> > UIComponent). By subclassing this, you can trap the call, look for you
> > attributes and add them to the element.
> >
> > -Andrew
> >
> > On Dec 14, 2007 7:07 PM, Ole Ersoy <[EMAIL PROTECTED]> wrote:
> > > Hi,
> > >
> > > I have a attribute that I just need to get passed through to the
> > > corresponding html element. For example:
> > >
> > > <h:form id="registrationForm"
> > > anAdditionalAttribute="I need to get through to the form element">
> > > </h:form>
> > >
> > >
> > > In the rendered output I would like:
> > >
> > > <form
> > > ...
> > > anAdditionalAttribute="I need to get through to the form element">
> > > </form>
> > >
> > >
> > > I think the process for doing this (Excluding component registration,
> > > etc.) is first to subclass the form component and add the
> > > "anAdditionalAttribute" to the subclass. Then subclass the corresponding
> > > renderer and render this attribute.
> > >
> > > Does anyone know if there's a quicker/magic way to get the job done?
> > >
> > > Thanks,
> > > - Ole
> > >
> > >
> > >
>
>