playframework - 在play 2.3.3中,实体一定要get set?

标签 playframework playframework-2.3

在游戏 2.1.1 中,实体 Login.java:

public class Login {
    @NotBlank(message = "login account cannot be empty")
    public String mobile;
    @NotBlank(message = "login password cannot be empty")
    public String password;
    public Integer ownInnId;
    public InnAdmin admin;
    public String token;
}

但在玩 2.3.3 时,发帖有错误:

play.api.Application$$anon$1: Execution exception[[IllegalStateException: JSR-30 3 validated property 'password' does not have a corresponding accessor for data binding - check your DataBinder's configuration (bean property versus direct fie ld access)]] at play.api.Application$class.handleError(Application.scala:296) ~[play_ 2.11-2.3.3.jar:2.3.3] at play.api.DefaultApplication.handleError(Application.scala:402) [play_ 2.11-2.3.3.jar:2.3.3] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun $applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.3.jar: 2.3.3] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun $applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.3.jar: 2.3.3] at scala.Option.map(Option.scala:145) [scala-library-2.11.2.jar:na] Caused by: java.lang.IllegalStateException: JSR-303 validated property 'password ' does not have a corresponding accessor for data binding - check your DataBinde r's configuration (bean property versus direct field access) at play.data.Form.bind(Form.java:349) ~[play-java_2.11-2.3.3.jar:2.3.3] at play.data.Form.bindFromRequest(Form.java:221) ~[play-java_2.11-2.3.3. jar:2.3.3] at controllers.Application.spLogin(Application.java:295) ~[classes/:na] at Routes$$anonfun$routes$1$$anonfun$applyOrElse$132$$anonfun$apply$132. apply(routes_routing.scala:3309) ~[classes/:na] at Routes$$anonfun$routes$1$$anonfun$applyOrElse$132$$anonfun$apply$132. apply(routes_routing.scala:3309) ~[classes/:na] Caused by: org.springframework.beans.NotReadablePropertyException: Invalid prope rty 'password' of bean class [bean.vo.Login]: Bean property 'password' is not re adable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrappe rImpl.java:725) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE] at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrappe rImpl.java:716) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE] at org.springframework.validation.AbstractPropertyBindingResult.getActua lFieldValue(AbstractPropertyBindingResult.java:99) ~[spring-context-4.0.3.RELEAS E.jar:4.0.3.RELEASE] at org.springframework.validation.AbstractBindingResult.rejectValue(Abst ractBindingResult.java:108) ~[spring-context-4.0.3.RELEASE.jar:4.0.3.RELEASE] at play.data.Form.bind(Form.java:343) ~[play-java_2.11-2.3.3.jar:2.3.3] [error] application - play onError...POST /spLogin Execution exception[[IllegalS tateException: JSR-303 validated property 'password' does not have a correspondi ng accessor for data binding - check your DataBinder's configuration (bean prope rty versus direct field access)]]

在游戏2.3.3中,实体必须设置好吗?

最佳答案

Play 不会强制您定义 getter/setter。您可以声明和使用它们,也可以直接访问公共(public)字段。

在后台,Ebean 仍会在编译后创建 getter/setter,因此您将无法在代码中使用它们。

关于您的错误,请尝试清理您的项目,然后重新编译:

$ play clean-all
$ play compile

关于playframework - 在play 2.3.3中,实体一定要get set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25438447/

相关文章:

json - 使用 Json.obj 和 getOrElse 玩 2.3 写入选项

scala - Akka 的 fork-join-executor 是否使用 scala.concurrent.blocking?

compiler-construction - Play Framework 类型 ... 已经定义

forms - 如何在 Play 中同时验证多个表单字段?

postgresql - 2.3.x Java 中 Play Framework 中 JPA 的模型父类(super class)

json - 使用 Play 2.3 和 Scala 2.11.1 将具有枚举属性的类转换为 Json 时出错

java - 如何在 Play Framework (Java) 2.3.x 中为 application.conf 文件中的键设置值

java - Play Framework 1 : tag to include javascript file only once

mysql - Play 2/Ebean ManyToMany JSON 结果

playframework - Play 1.4.3 -- UnexpectedException : While applying class play. classloading.enhancers.LocalvariablesNamesEnhancer