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]
>
>