I rather meant @Property adding getters and setters in general.

And like Markus, this is working fine for me (just tested it with 5.0.18).

page class:

@Property(write=false)
@Validate("required")
private String foo;

public void setFoo(String foo)
{
    this.foo = foo;
    System.out.println("setFoo() called with " + foo);
}

template:

<t:form>
  <t:textfield value="foo" />
  <t:submit />
</t:form>

Uli

Robert Zeigler schrieb:
I haven't tested this behavior, but I would consider it a bug for two reasons: 1) write = false is specified for @Property. So tapestry really shouldn't be creating any setters for this property during the class transformation. 2) From Osamuo's text, it sounds like that if you don't have @Validate, the custom setter is called just fine. It's only when you add @Validate that the set fails. Is that the case? If so, it's definitely a bug. It either needs to fail in both cases, or succeed in both cases.

Robert

On Feb 23, 2009, at 2/236:05 AM , Ulrich Stärk wrote:

No, it's not. This is expected behaviour.

Uli

inyokoyoko-deve...@yahoo.co.jp schrieb:
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.


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


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



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

Reply via email to