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