You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <de...@tapestry.apache.org> on 2007/11/13 18:13:43 UTC
[jira] Commented: (TAPESTRY-1908) BeanEditorForm does not use class
supplied via optional model
[ https://issues.apache.org/jira/browse/TAPESTRY-1908?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12542171 ]
Howard M. Lewis Ship commented on TAPESTRY-1908:
------------------------------------------------
I believe you are tripping across code related to auto-instantiating your bean instance. I can look into whether we can work from the BeanModel rather than the type of property bound to the object parameter. If you provide a prepare event handler that instantiates the entity object, that may rectify the problem.
> BeanEditorForm does not use class supplied via optional model
> -------------------------------------------------------------
>
> Key: TAPESTRY-1908
> URL: https://issues.apache.org/jira/browse/TAPESTRY-1908
> Project: Tapestry
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.0.6
> Environment: Java 1.5
> Reporter: Ezra Epstein
>
> The guide document for the BeanEditForm http://tapestry.apache.org/tapestry5/tapestry-core/guide/beaneditform.html states under the "Providing the BeanModel" heading: "...For example, if the the type of the property being edited is an interface type, it may be useful to provide an explicit BeanModel around an underlying implementation class."
> I've been trying this and get a variety of exceptions depending on which way I go.
> .tml:
> <form t:type="beaneditform" object="entity" model="model" />
> .java:
> If getEntity() returns the exact concrete class this works fine. But,
> if getEntity() returns a concrete superclass a ClassCastException is thrown. If getEntity() returns an interface or an abstract superclass then a org.apache.tapestry.ioc.internal.util.TapestryException is thrown with a message stating: "Exception instantiating instance of ..."
> I'm guessing that the BeadEditorForm is using the return type of the getEntity() method in preference to the class I specify on the model.
> Note: the use case is a bit hyper-dynamic and sneaky. I'm using (or trying to use) Tap5 as an HTML front-end to a generic REST entity service. The service takes XML and I wanted to add a simple HTML interface to it. Thus the actual class of the entity is determined via a request parameter. I can dynamically set the class in the model but not the getEntity()'s return type.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org