org.apache.wicket.markup.resolver
Class WicketMessageResolver

java.lang.Object
  extended by org.apache.wicket.markup.resolver.WicketMessageResolver
All Implemented Interfaces:
java.io.Serializable, IClusterable, IComponentResolver

public class WicketMessageResolver
extends java.lang.Object
implements IComponentResolver

This is a tag resolver which handles <wicket:message key="myKey">Default Text</wicket:message>. The resolver will replace the whole tag with the message found in the properties file associated with the Page. If no message is found, the default body text will remain.

You can also nest child components inside a wicket:message and then reference them from the properties file. For example in the html

     <wicket:message key="myKey">
        This text will be replaced with text from the properties file.
        <span wicket:id="amount">[amount]</span>.
        <a wicket:id="link">
            <wicket:message key="linkText"/>
        </a>
     </wicket:message>
 
Then in the properties file have a variable with a name that matches the wicket:id for each child component. The variables can be in any order, they do NOT have to match the order in the HTML file.
     myKey=Your balance is ${amount}. Click ${link} to view the details.
     linkText=here
 
And in the java
 add(new Label("amount", new Model<String>("$5.00")));
 add(new BookmarkablePageLink<Void>("link", DetailsPage.class));
 
This will output
 Your balance is $5.00. Click <a href="#">here</a> to view the details.
 
If variables are not found via child component, the search will continue with the parents container model object and if still not found with the parent container itself. It is possible to switch between logging a warning and throwing an exception if either the property key/value or any of the variables can not be found.

Author:
Juergen Donnerstag, John Ray
See Also:
Serialized Form

Field Summary
static java.lang.String MESSAGE
           
 
Constructor Summary
WicketMessageResolver()
           
 
Method Summary
 Component resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag)
          Try to resolve a component.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MESSAGE

public static final java.lang.String MESSAGE
See Also:
Constant Field Values
Constructor Detail

WicketMessageResolver

public WicketMessageResolver()
Method Detail

resolve

public Component resolve(MarkupContainer container,
                         MarkupStream markupStream,
                         ComponentTag tag)
Description copied from interface: IComponentResolver
Try to resolve a component.

Specified by:
resolve in interface IComponentResolver
Parameters:
container - The container parsing its markup
markupStream - The current markupStream
tag - The current component tag while parsing the markup
Returns:
component or null if not found


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.