boon/src/main/java/org/boon/validation/ValidationContext.java
private String doGetMessageFromBundle( String key ) {

        if ( resourceBundleLocator == null ) {
            return null;
        }
        /* Find the resourceBundle. */
        ResourceBundle bundle = this.resourceBundleLocator.getBundle();

        if ( bundle == null ) {
            return null;
        }


        String message = null; //holds the message

    	/* If the message starts with an i18nMarker look it up
         * in the resource bundle.
    	 */
        if ( key.startsWith( this.i18nMarker ) ) {
            try {
                key = key.substring( 1, key.length() - 1 );
                message = lookupMessageInBundle( key, bundle, message );
            } catch ( MissingResourceException mre ) {
                message = key;
            }
        } else {
            /*
             * If it does not start with those markers see if it has a ".". If
			 * it has a dot, try to look it up. If it is not found then just
			 * return the key as the message.
			 */
            if ( key.contains( "." ) ) {
                try {
                    message = lookupMessageInBundle( key, bundle, message );
                } catch ( MissingResourceException mre ) {
                    message = key;
                }
            } else {
                message = key;
            }
        }
        return message;
    }
private String doGetMessageFromBundle( String key ) {

        if ( resourceBundleLocator == null ) {
            return null;
        }
        /* Find the resourceBundle. */
        ResourceBundle bundle = this.resourceBundleLocator.getBundle();

        if ( bundle == null ) {
            return null;
        }


        String message = null; //holds the message

    	/* If the message starts with an i18nMarker look it up
         * in the resource bundle.
    	 */
        if ( key.startsWith( this.i18nMarker ) ) {
            try {
                key = key.substring( 1, key.length() - 1 );
                message = lookupMessageInBundle( key, bundle, message );
            } catch ( MissingResourceException mre ) {
                message = key;
            }
        } else {
            /*
             * If it does not start with those markers see if it has a ".". If
			 * it has a dot, try to look it up. If it is not found then just
			 * return the key as the message.
			 */
            if ( key.contains( "." ) ) {
                try {
                    message = lookupMessageInBundle( key, bundle, message );
                } catch ( MissingResourceException mre ) {
                    message = key;
                }
            } else {
                message = key;
            }
        }
        return message;
    }
The doGetMessageFromBundle does a bit of magic. If the message starts with {
than it assumes it is an i18N message and looks it up in the
resource bundle. If it starts with #{ it assumes it is an expression
and uses OGNL, JSF EL, or the Universal EL to look up the expression
in the context.