scala - 具有替代方法的重载方法值过滤器:在 play-framework 2.6 中
问题描述
我从 play 2.4 升级到 play 2.6 我收到了这个编译时错误
[error] myproject/app/models/jsonparsing/DirectUserSignUpJsonValidation.scala:27: overloaded method value filter with alternatives:
[error] (error: play.api.libs.json.JsonValidationError)(f: String => Boolean)play.api.libs.json.Reads[String] <and>
[error] (f: String => Boolean)play.api.libs.json.Reads[String]
[error] cannot be applied to (play.api.data.validation.ValidationError)
[error] filter(ValidationError("Password length is less than 8"))(_.length >= 8).
这是代码
case class DirectUserSignUpValidation(firstName: String,
lastName: String,
email: String,
password: String) extends Serializable
object DirectUserSignUpValidation {
var validationErrorMsg=""
implicit val readDirectUser: Reads[DirectUserSignUpValidation] = (
(JsPath \ "firstName").read(minLength[String](1)) and
(JsPath \ "lastName").read(minLength[String](1)) and
(JsPath \ "email").read(email) and
(JsPath \ "password").read[String].
filter(ValidationError("Password length is less than 8"))(_.length >= 8).
filterNot(ValidationError("Password is all numbers"))(_.forall(_.isDigit)).
filterNot(ValidationError("Password is all letters"))(_.forall(_.isLetter))
)(DirectUserSignUpValidation.apply _)
}
解决方案
新的 play-json 库现在可以使用JsonValidationError
并且您正在使用旧的ValidationError
.
推荐阅读
- c# - Microsoft Graph SDK (C#) 组邮箱
- javascript - 从 ImageData 数组生成水平精灵图像
- python - 无法通过 pip install 下载 InstaPy python 模块
- reactjs - 基于会话存储或页面隐藏 React 元素
- python-3.x - 如何从 Exchange 2016 获取日历事件
- sqlite - 在单独文件的 main.dart 中使用 SQLite?
- c++ - 使用 eBPF 拦截 Linux 上的所有传出/传入流量
- r - 获取R中向量中重复值的第一个元素的索引
- html - 如果没有提供参数,CSP HTTP 标头“frame-ancestors”的默认值是多少?
- amazon-web-services - 如何让 BitBucket Server v5.15.1 (on-premise) webhook 通过 API Gateway 触发 Lambda 进入 S3?