Hi,

I have already known a solution.

It seems to be a bug.
Don't you think so?

osamuo



 Using the @Property annotation will make Tapestry add getters and 
setters for this property during class transformation that will override 
your supplied ones. Leave out the @Property annotation and specify your 
own getters and setters and you should be fine.

Uli

inyokoyoko-deve...@yahoo.co.jp schrieb:
> Hi,
> 
> You can encounter the same problem with the following code in a freshly set 
> up project. Please try. Click the submit button.
> 
> 
> Test.java
> ---------------------------------
> package org.example.myapp.pages;
> 
> import java.util.Date;
> 
> import org.apache.tapestry5.annotations.Property;
> import org.apache.tapestry5.beaneditor.Validate;
> 
> 
> public class Test{
> 
>     @Property( write = false )
>     @Validate( "required") // <== when this line is added, setName() is not 
> called
>     private String name;
>     
>   public void setName( String name ){
>     this.name = name;
>   }
> }
> ---------------------------------
> 
> 
> Test.tml
> ---------------------------------
> 
>     
>         
>     
>     
>         
>                 [input] 
>                
>                 [input] 
>            
>     
> 
> 
> ---------------------------------
> 
> osamuo
> 
> 
> 
> 
> 
> 
> I'm using the same version as you do - 5.0.18
> Have you tried the same code in a freshly set up project? The problem seems
> to be somewhere else in your project.
> 
> On Sun, Feb 22, 2009 at 5:55 PM,  wrote:
> 
>> Hi,
>>
>> What version are you using?
>>
>> With the following code setName() was called.
>>
>> @Property( write = false )
>> private String name;
>> public void setName( String name ){     <== called
>>    ...
>>    this.name = ....
>> }
>>
>>
>>
>> With the following code setName() was not called.
>>
>> @Property( write = false )
>> @Validate( "Required,MinLength=5,MaxLength=16" )
>> private String name;
>> public void setName( String name ){      <== not called
>>    ...
>>    this.name = ....
>> }
>>
>>
>> I don't know why the setter is not called if I add @Validate.
>>
>>
>> osamuo
>>
>>
>> Markus Lux  wrote: With your example code I'm
>> getting an ComponentEventException saying that
>> "name" is read-only.
>> Try adding a public-modifier to your setter. That worked for me.
>>
>> On Sun, Feb 22, 2009 at 3:49 PM,  wrote:
>>
>>> Hi,
>>>
>>> When I set '@Validate' for a TextField, the setter was never called.
>>> It seems to be a bug.
>>>
>>> @Property( write = false )
>>> @Validate( "Required,MinLength=5,MaxLength=16" )
>>> private String name;
>>> void setName( String name ){      <=== not called
>>>    ...
>>>    this.name = ....
>>> }
>>>
>>> Thanks,
>>> osamuo
>>>
>>>
>>>
>>>
>>> ---------------------------------
>>> Power up the Internet with Yahoo! Toolbar.
>>>
>>
>>
>>
>> ---------------------------------
>> Power up the Internet with Yahoo! Toolbar.
>>
> 
>  
> 
>  
> ---------------------------------
> Power up the Internet with Yahoo! Toolbar.
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org


 

 
---------------------------------
Power up the Internet with Yahoo! Toolbar.

Reply via email to