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
.