Yes we could do that. Just remove that default value.
But what i would like to have IF you have a body specified then we don't
throw anything
This way we keep old behavior and we have the new one
Because if i specifiy a body then thats the default value for me. And if not
then i still can see
very easy that i miss a key.
But i guess that is not that easy to do because we have no idea inside the
tag that it really has a body right?

but i am fine with this change.

johan


On 11/4/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
>
> The easiest solution would be this:
>
> Index: /Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4
> /wicket/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
> ===================================================================
> --- /Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4
> /wicket/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
>     (revision
> 591166)
> +++ /Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4
> /wicket/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
>     (working
> copy)
> @@ -43,13 +43,6 @@
> {
>        private static final Logger log =
> LoggerFactory.getLogger(WicketMessageResolver.class);
>
> -       /**
> -        * If the key can't be resolved and the default is null, an
> exception will be thrown. Instead,
> -        * we default to a unique string and check against this later.
> Don't
> just use an empty string
> -        * here, as people might want to override wicket:messages to empty
> strings.
> -        */
> -       private static final String DEFAULT_VALUE =
> "DEFAULT_WICKET_MESSAGE_RESOLVER_VALUE";
> -
>        static
>        {
>                // register "wicket:message"
> @@ -74,7 +67,7 @@
>         * @return true, if componentId was handle by the resolver. False,
> otherwise
>         */
>        public boolean resolve(final MarkupContainer container, final
> MarkupStream markupStream,
> -                       final ComponentTag tag)
> +               final ComponentTag tag)
>        {
>                if (tag instanceof WicketTag)
>                {
> @@ -85,7 +78,7 @@
>                                if ((messageKey == null) || (
> messageKey.trim().length() == 0))
>                                {
>                                        throw new MarkupException(
> -                                                       "Wrong format of
> <wicket:message key='xxx'>: attribute 'key'
> is missing");
> +                                               "Wrong format of
> <wicket:message key='xxx'>: attribute 'key' is
> missing");
>                                }
>
>                                final String id = "_message_" +
> container.getPage().getAutoIndex();
> @@ -91,7 +84,7 @@
>                                final String id = "_message_" +
> container.getPage().getAutoIndex();
>                                MessageLabel label = new MessageLabel(id,
> messageKey);
>                                label.setRenderBodyOnly(
> container.getApplication().getMarkupSettings()
> -                                               .getStripWicketTags());
> +                                       .getStripWicketTags());
>                                container.autoAdd(label, markupStream);
>
>                                // Yes, we handled the tag
> @@ -125,8 +118,8 @@
>                protected void onComponentTagBody(MarkupStream
> markupStream,
> ComponentTag openTag)
>                {
>                        final String key = getModelObjectAsString();
> -                       final String value = getLocalizer().getString(key,
> getParent(),
> DEFAULT_VALUE);
> -                       if (value != null && !DEFAULT_VALUE.equals(value))
> +                       final String value = getLocalizer().getString(key,
> getParent());
> +                       if (value != null)
>                        {
>                                replaceComponentTagBody(markupStream,
> openTag, value.trim());
>                        }
>
>
> But that would produce a lousy error message:
>
> WicketMessage: Exception in rendering component: [Component id =
> _message_4, page = org.apache.wicket.examples.helloworld.HelloWorld,
> path = 6:_message_4.WicketMessageResolver$MessageLabel, isVisible =
> true, isVersioned = true]
>
> Root cause:
>
> java.util.MissingResourceException: Unable to find resource: test for
> component:  [class=org.apache.wicket.examples.helloworld.HelloWorld]
>     at org.apache.wicket.Localizer.getString(Localizer.java:261)
>     at org.apache.wicket.Localizer.getString(Localizer.java:91)
>     at
> org.apache.wicket.markup.resolver.WicketMessageResolver$MessageLabel.onComponentTagBody
> (WicketMessageResolver.java:128)
>     at org.apache.wicket.Component.renderComponent(Component.java:2416)
>
>
> Eelco
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to