You forgot to cast to Object[]
return getMessages().format(key, (Object[])arg);

Also,
return getMessages().format(key, new Object[] { arg });
can become
return getMessages().format(key, arg );



>From  Matt Raible <[EMAIL PROTECTED]>:

> I have the following in a base class for my Tapestry pages to extend:
> 
>     protected String getText(String key, Object arg) {
>         if (arg == null) {
>             return getText(key);
>         }
> 
>         if (arg instanceof String) {
>             return getMessages().format(key, new Object[] { arg });
>         } else if (arg instanceof Object[]) {
>             return getMessages().format(key, arg);
>         } else {
>             log.error("argument '" + arg + "' not String or Object[]");
> 
>             return "";
>         }
>     }
> 
> Passing in a key, or a single String argument works fine:
> 
> getText("user.added", user.getFullName());
> 
> However, if I pass in an Object array, the substituted values get garbled:
> 
> getText("login.passwordHint.sent", new Object[] {username, user.getEmail()})
> 
> login.passwordHint.sent=The password hint for <strong>{0}</strong> has
> been sent to <strong>{1}</strong>.
> 
> Results in:
> 
> The password hint for <strong>[Ljava.lang.Object;@1ce1387</strong> has
> been sent to <strong>{1}</strong>.
> 
> Any ideas?
> 
> Thanks,
> 
> Matt
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 


-- 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to