Well, I managed to solve this one. Ognl didn't actually pass the object
itself to the method, but rather an instance of
com.opensymphony.xwork2.util.CompoundRoot. I managed to get the object I
needed by using its peek() method.

On Fri, Jun 6, 2008 at 2:47 PM, Jukka Välimaa <[EMAIL PROTECTED]>
wrote:

> Hi all,
>
> I'm trying to format a certain string property of an object differently
> depending on the object state. For this, I'm trying to call an action method
> from the jsp, like this:
> <s:property value="%{ getFormattedIfDeleted( [0], [0].name ) }" />
>
> My problem is the following: if I use my class type as the parameter type
> of the first argument of the method, the jsp code never calls the action
> method.
>
> This version of method is called:
>     public String getFormattedIfDeleted( Object modelObject, String
> objectText ) {...}
>
> This is not called:
>     public String getFormattedIfDeleted( AbstractBaseObject modelObject,
> String objectText ) {...}
>
> The actual object I use as the parameter extends AbstractBaseObject. So it
> should qualify just as well for both. I've confirmed that the object type is
> the right one by printing it out in jsp.
>
> What's more, if I use the first method, the object is no longer recognized
> as its own type by instanceof,  modelObject instanceof AbstractBaseObject
> evaluates as false.
>
> I' quessing there is something esoteric in OGNL playing havoc here, but
> that's about it. Any idea what's wrong? Thanks in advance.
>
>

Reply via email to