如何在Playframework的路由中从URL解析ObjectId类型

时间:2019-04-14 15:20:39

标签: java mongodb playframework

我正在将play 2.7.x与 Java 一起使用,并且试图从routes配置文件中的网址解析mongodb的ObjectId,如下所示:

GET      /tasks/:id/view       controllers.TaskController.viewTask(id: org.bson.types.ObjectId)

除了验证URL中的ObjectId之外,我真的不需要任何mongodb功能。

我的build.sbt文件是:

name := """bla-bla-core"""
organization := "com.bla"
maintainer := "bla@bla.com"

version := "1.0-SNAPSHOT"


lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.12.8"

libraryDependencies ++= Seq(
  guice,
  ws,
  ehcache,
  filters,
  "org.mongodb" % "mongo-java-driver" % "3.0.1",
)

我收到以下编译错误:

Compilation error[No URL path binder found for type org.bson.types.ObjectId. Try to implement an implicit PathBindable for this type.]

有人在Playframework中从路由设置了mongodb的objectId解析吗?我以为这是一个很普遍的问题,我会很容易找到解决方案,但是我没有尝试过:/

所有解决方案都在讨论某个名为"se.radley" %% "play-plugins-salat"的软件包,该软件包最后维护于2016年:D

1 个答案:

答案 0 :(得分:0)

尝试将其作为String并转换为控制器中的ObjectId。