Thanks a lot for the info, it worked. I saw a Struts bean definition like that somewhere that led me to believe that that was how it was done, but as you said, it appears that the accessor never actually gets registered that way. As for the wisdom of doing this....in my view the real pain is being stuck with the class we're using the PropertyAccessor *for*, but unfortunately that's reality for now. Using the PropertyAccessor just makes our pages much cleaner. <http://www.motricity.com>

Regards,
Tommy Becker

Jeromy Evans wrote:
My guess, and it is just a guess, is that your bean is being instantiated by the Struts2 container but it's not being injected anywhere.

Based on my almost-non-existent understanding of OGNL, the OgnlRuntime contains a static synchronized map of Class->PropertyAccessor which you can see being setup in OgnlRuntime.java

The static method OgnlRuntime.setPropertyAccessor(Class, PropertyAccessor) looks like what you're after. A quick usage search shows it's not used in Struts2 or XWrok anywhere so I think you'll have to make a static call from you application to register your PropertyAccessor instance yourself. That means you don't need to define a struts2 bean at all (unless you want to access it though the container)

Personally, I think you're setting yourself up for a world of pain creating a custom PropertyAccessor. I'd go the simplified bean & service façade route so to ensure I'm not locked into any particular expression language/library.

cheers,
Jeromy Evans

Tommy Becker wrote:
I have a question about using OGNL PropertyAccessors. We have an object on the value stack that we expose to JSP pages that does not have standard JavaBeans getter/setter methods. From what I can tell, this leaves us 2 options. We can either call the getter methods explicitly via OGNL method calls in the pages, or we can wrap the object in a JavaBean-like object. The second option is unworkable in all but the simplest of cases when you realize that the method calls can themselves return another object that needs to be wrapped, or even a collection of them. So we've been using method calls in the pages (yeah I know).

Reading through the OGNL docs, it seems that what we need is a PropertyAccessor that knows how to operate on our object. So we implemented one, and attempted to register it by placing this in our struts.xml:

<bean type="ognl.PropertyAccessor" name="class.we.need.access.to" class="our.property.accessor.PropertyAccessor"/>

Unfortunately it doesn't work. Can someone tell me what we're doing wrong, or even if what we're trying to do is possible? Thanks!

<http://www.motricity.com>


NOTICE: This e-mail message is for the sole use of the intended recipient(s) and may contain confidential and privileged information of Motricity. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message.

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


NOTICE: This e-mail message is for the sole use of the intended recipient(s) 
and may contain confidential and privileged information of Motricity.  Any 
unauthorized review, use, disclosure or distribution is prohibited.  If you are 
not the intended recipient, please contact the sender by reply e-mail and 
destroy all copies of the original message.

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

Reply via email to