经Playframework JSR-303验证的“字段”没有用于数据绑定的相应访问器


问题内容

当我将以下代码添加到我的项目中后

Form<User> filledForm2 = userSignupForm.bindFromRequest();

它通过显示一条错误消息来停止工作,该错误消息指出:

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)]

我的User课是这样的:

class User{
String username;
String Password;
}

现在如何在Java Play框架中检查/修改DataBinder的配置?


问题答案:

实际上,这不应该发生,因为Play会自动生成getter和setter,请参见Guillaume的注释

因此,您的IDE可能会引起问题,例如Guillaume的Eclipse注释。或者您的sbt缓存已损坏并且需要清理,您可以这样做play clean- all在此处阅读有关内容

顺便说一句 ,将Password属性更改为password可能导致重新生成了缓存,因此解决了该问题。

更新:

对于使用的最新版本的Play,activator似乎以下是最新的等效版本:

activator cleanactivator clean-files