When I have added this following code to my project
Form<User> filledForm2 = userSignupForm.bindFromRequest();
It has stopped working by showing an error message which states:
Execution exception [IllegalStateException: JSR-303 validated property 'Password' does not have a corresponding accessor for data binding - check your DataBinder's configuration (bean property versus direct field access)]
My User
class was like that:
class User{ String username; String Password; }
Now how can to check/modify DataBinder's configuration in java play framework?
Actually this shouldn't be happening, as Play automatically generates getters and setters, see Guillaume's comment.
Therefore it's possible that your IDE is causing issues e.g. Guillaume's comment re Eclipse. Or that your sbt cache is corrupt and needs cleaning, which you can do with play clean-all
(read about it here)
By the way, changing your Password
attribute to password
may have caused the cache to be re-generated and therefore fixed the issue.
Update:
For more recent versions of Play that use activator
, it seems the following are the the up-to-date equivalents:
activator clean
and activator clean-files
My environment is Mac OS X 10.9.5 and run CentOS 7 with Vagrant. On CentOS the same problem happended, but on Mac OS didn't. Play Framework version is 2.3.8.
The commnad below didn't work in my case:
activator clean activator clean-files
Though it's so weird, I had to define getter and setter to work Play Framework on CentOS7 successfully as following:
@Entity public class Message extends Model{ @Id public long id; @Constraints.Required public String name; //Add getter and setter to work successfully... public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With