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
---------------------------------
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
    <head>
        <title></title>
    </head>
    <body>
        <form t:type="form" t:clientValidation="false">
               <input t:id="name" t:type="textfield" type="text" />
               
               <input type="submit" value="submit" />
           </form>
    </body>
</html>

---------------------------------

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.

Reply via email to