I remember a long thread related to this issue. The reason why the wicket
didn't accept by now '.' and ':' characters is because if you want to
identify the Dom element with generated output markup id containing these
chars using some sort of js library like jQuery, Prototype or mooTools
(using css3 selector), you'll not get any results. That is because '.' is a
css class separator & ':' is a pseudoclass separator. 

For instance:
$("#user.name") will look for an element with id "user" which has the "name"
class. 

I would keep this as it is, in order to support integration with largely
used js libraries. 
  
Alex Objelean.


Martijn Dashorst wrote:
> 
> The "." (dot) is an accepted, and widely used part of component
> identifiers: CompoundPropertyModel makes heavy use of this feature.
> 
> Martijn
> 
> On Sat, Mar 21, 2009 at 11:27 AM, Juergen Donnerstag (JIRA)
> <j...@apache.org> wrote:
>> Check component id against invalid chars ':' and '.'
>> ----------------------------------------------------
>>
>>                 Key: WICKET-2184
>>                 URL: https://issues.apache.org/jira/browse/WICKET-2184
>>             Project: Wicket
>>          Issue Type: Improvement
>>          Components: wicket
>>    Affects Versions: 1.4-RC2
>>            Reporter: Juergen Donnerstag
>>
>>
>> Currently we are only testing a component id not to be null. However ':'
>> and '.' are effectively invalid chars as well. ":" is used as separator
>> between path component and "." is used to find properties like
>> myComponent.Required
>>
>> Component.java should be modified as follows:
>>
>>        final void setId(final String id)
>>        {
>>                if (!(this instanceof Page))
>>                {
>>                        if (Strings.isEmpty(id))
>>                        {
>>                                throw new WicketRuntimeException("Null or
>> empty component id is not allowed.");
>>                        }
>>
>>                        if ((id.indexOf('.') != -1) || (id.indexOf(':') !=
>> -1))
>>                        {
>>                                throw new WicketRuntimeException("The
>> component id must not contain a '.' or ':'.");
>>                        }
>>                }
>>                this.id = id;
>>        }
>>
>>
>> --
>> This message is automatically generated by JIRA.
>> -
>> You can reply to this email to add a comment to the issue online.
>>
>>
> 
> 
> 
> -- 
> Become a Wicket expert, learn from the best: http://wicketinaction.com
> Apache Wicket 1.3.5 is released
> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Re%3A--jira--Created%3A-%28WICKET-2184%29-Check-component-id-against-invalid--chars-%27%3A%27-and-%27.%27-tp22634973p22644720.html
Sent from the Wicket - Dev mailing list archive at Nabble.com.

Reply via email to