You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Igor Drobiazko (JIRA)" <ji...@apache.org> on 2010/02/19 12:29:28 UTC

[jira] Commented: (TAP5-921) Cannot reference property from property expression if backing type is abstract and property is defined in interface

    [ https://issues.apache.org/jira/browse/TAP5-921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12835705#action_12835705 ] 

Igor Drobiazko commented on TAP5-921:
-------------------------------------

Tapestry asks java.beans.Introspector to determine the properties of a JavaBean. In your case the returned BeanInfo just doesn't contain any PropertyDescriptor. 

> Cannot reference property from property expression if backing type is abstract and property is defined in interface 
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-921
>                 URL: https://issues.apache.org/jira/browse/TAP5-921
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.1.0.5
>            Reporter: Peter Rietzler
>
> Here is a simple example: 
> public interface HasName {
> 	String getName();
> }
> public abstract class AbstractBean implements HasName {
> }
> public class TestPage {
> 	@Property
> 	private AbstractBean bean;
> 	public void onActivate() {
> 		bean = new AbstractBean() {
> 			public void setName(String name) {
> 			}
> 		};
> 	}
> }
> TestPage.tml
> ...
> 	<h1>${bean.name}</h1>
> ...
> Error message is:
> Exception assembling root component of page manager/tools/TestPage: Could not convert 'bean.name' into a component parameter binding: Class smarter.ecommerce.smeco.manager.pages.tools.AbstractBean does not contain a property named 'name' (within property expression 'bean.name'). Available properties: class, componentResources.
> Everything works fine if I change the bean class to:
> public abstract class AbstractBean implements HasName {
>   public abstract String getName();
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.