控制器在playframework中的操作中的自定义类型

时间:2015-08-25 14:42:51

标签: scala playframework controller playframework-2.0

有没有办法在play框架中使用“typesafe”参数进行操作?而不是userId是String,它可以是更类型安全的类,如下例所示:

case class UserId(v: String) extends AnyVal

object UsersController extends Controller {

  def get(userId: UserId) = Action {
    Ok(Users.find(userId))
  }

}

这也会使测试代码更加类型安全:

val userId: UserId = ....
FakeRequest(routes.UsersController.get(userId))

如果您不小心传递了其他内容,上面的代码会给出编译器错误。

...但要到达那里你必须以某种方式将它转换为.routes文件中的正确类型..?

1 个答案:

答案 0 :(得分:1)