Grant,

The autogenerated id's do not have ':' in them anyways.  The clientId
has it but not the component id.  In my case I was deriving the id of
some hidden fields based on the client id which was a mistake.  If I
just derive off the component id everything is fine.

sean

ps. Thanks for looking into this.  Give the new component a try if
you're interested.



On 7/1/05, Grant Smith <[EMAIL PROTECTED]> wrote:
> I posted that a minute before Craig explained why (:) should NOT be
> allowed, so please ignore my previous suggestion.
> 
> Grant Smith wrote:
> 
> > Thanks Craig.
> >
> > Based on what Craig (and the spec :-) ) says, I think we need to
> > reconsider how we use UIComponentBase.setId(). If a component's ID is
> > generated automatically, we should not be calling isIdValid(). Either
> > that, or we need to explicitly allow the SEPARATOR_CHAR (:) to be
> > valid. I tend to favor the latter as it would be a simple change.
> >
> > Thoughts ?
> >
> >
> > Craig McClanahan wrote:
> >
> >> On 7/1/05, Grant Smith <[EMAIL PROTECTED]> wrote:
> >>
> >>
> >>> Hmm.. Does this mean that section 3.2.2 of the spec directly
> >>> contradicts
> >>> section 3.3.1 ?
> >>>
> >>> Craig ?
> >>>
> >>>
> >>
> >>
> >> There's a difference between the value of the *id* attribute in your
> >> source page (i.e. what 3.1.1 talks about) and the value that gets
> >> generated in the rendered output (which is what 3.2.2 talks about).
> >> The latter value is the *clientId* of the component, not the id, and
> >> therefore can include ":" characters when there is a NamingContainer
> >> involved.
> >>
> >> Note that the reason for having any restrictions in the first place is
> >> based on the fact that, in XHTML environments, the "id" attribute is
> >> declared to be of type ID, which imposes essentially the same set of
> >> restrictions of you want your source page, or the rendered output, to
> >> validate.
> >>
> >> Craig
> >>
> >>
> >>
> >>
> >>> Bruno Aranda wrote:
> >>>
> >>>
> >>>
> >>>> Hey, stop, the colon is what the NamingContainer uses, as stated in
> >>>> section 3.2.2 of the spec.
> >>>>
> >>>> 'NamingContainer defines a public static final character constant,
> >>>> SEPARATOR_CHAR, that is used to separate components of client
> >>>> identifiers, as well
> >>>> as the components of search expressions used by the findComponent()
> >>>> method see
> >>>> (Section 3.1.8 "Component Tree Navigation"). The value of this
> >>>> constant must be a
> >>>> colon character (":").'
> >>>>
> >>>> So, better to keep it ;-)
> >>>>
> >>>> Regards,
> >>>>
> >>>> Bruno
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >> .
> >>
> >>
> >>
> >
> >
> > .
> >
> 
>

Reply via email to