Hi,

I have just bumped into a particular situation, I think I know what's
happening but I'd like to share and, if possible, have it confirmed here.
Additionally, some info on this subject could be added to the wiki page
https://cwiki.apache.org/WICKET/wickets-xhtml-tags.html#Wicket%27sXHTMLtags-Attributewicket:message

In a regular <table> html tag (wicket:id-less), I'd like to have a
wicket:message attribute (for the 'summary' attribute) in order to take
advantage from wicket's localization mechanism. Under this tag, I have a
number of wicket components. My surprise came when I found the following
error:

<table wicket:message="summary:myresource">
> <tr><td><span wicket:id="myComponent"></span></td></tr>
> </table>
>
> org.apache.wicket.markup.MarkupException: Unable to find component with id
> 'myComponent' in [MarkupContainer [Component id = _message_attr_303]]. This
> means that you declared wicket:id=myComponentin your markup, but that you
> either did not add the component to your page at all, or that the hierarchy
> does not match.
>


The first suspicious thig I noticed here was the "_message_attr_303" in the
component hierarchy. Digging through the code, I found in
WicketMessageTagHandler that this id is given to components with
wicket:message attributes and without wicket:id's.

So, maybe what's happening here is that the <table> tag is being assigned a
wicket:id and Wicket expects me to add 'myComponent' to the automatically
generated _message_attr_303... Should it be fixed by modelling the <table>
tag with a webmarkupcontainer and adding 'myComponent' to it ?

Cheers,
Xavier

Reply via email to