There needs to be a better way than that. Every decent JavaScript library out there uses getElementById() to manipulate elements and allow people to build dynamic web apps. A "solution" that requires either wrapping every component usage in a proxy tag or overriding all of the components isn't tenable. People building dynamic web apps are not going to adopt JSF with those kinds of constraints imposed on them.

I can see why there might be issues with components inside of something like a data grid. But this can be overcome by, for example, taking the id provided and adding an index using a well-defined scheme, so that other JavaScript code can know how to identify the relevant elements.

--
Martin Cooper


On Thu, 30 Dec 2004, Heath Borders wrote:

It really becomes a problem when you start using dataTables
extensively in your applications.  Since JSF is iterating over the
content, you can't exactly specify an id for it (it would always be
the same!).  My suggestion is to use j4j's proxyId tag.  It basically
allows you to define a clientId.

You could also override all the default components to just use their
id as their clientId, but it would probably be quite an annoyance to
do.


On Thu, 30 Dec 2004 09:51:49 -0500, Sean Schofield <[EMAIL PROTECTED]> wrote:
A major stumbling block for me with JSF is how the implementations all
seem to "munge" the id attributes of my JSF tags.  I'm assuming this
helps with constructing the component tree and mapping the posts to
the right components, but does it have to be this way?

Both MyFaces and the RI change the id attribute.  Couldn't they just
change the name attribute?  Isn't that the only thing that is sent via
POST?  We have tons of javascript that use the getElementById method
and this would be a problem changing it.

I know there are some workarounds with using special tags, etc. but
that seems like a lot of trouble to avoid something that is likely a
problem for many others.

sean



--
-Heath Borders-Wing
[EMAIL PROTECTED]

Reply via email to