您好,我正在使用 Java 学习 Play Framework 2,但遇到了问题。我使用 MongoDB,并有一个简单的类 User,其中 ObjectId 作为唯一 ID。
public class User {
@JsonProperty
public ObjectId id;
..
在我看来,我想添加一个按钮来删除当前用户,如下所示:
@form(routes.Application.deleteUser(user.id)) {
<input type="submit" value="Delete">
}
在我的路线文件中:
POST /users/:id/delete controllers.Application.deleteUser(id: org.bson.types.ObjectId)
但是现在我得到一个错误:
“未找到类型 org.bson.types.ObjectId 的 URL 路径绑定(bind)器。尝试为此类型实现隐式 PathBindable”
我尝试了很多方法,例如,我尝试仅将 ObjectId 值作为字符串传递,但没有任何效果。谁能帮我解决这个问题?
最佳答案
你可以使用 play-salat具有必要的绑定(bind)器,只需将其作为依赖项添加到您的 project/Build.scala
并将其导入到您的路由和模板中:
import sbt._
import Keys._
import PlayProject._
object ApplicationBuild extends Build {
val appDependencies = Seq(
"se.radley" %% "play-plugins-salat" % "1.2-SNAPSHOT"
)
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
resolvers += "OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/",
routesImport += "se.radley.plugin.salat.Binders._",
templatesImport += "org.bson.types.ObjectId"
)
}
另请查看此 example application .
关于java - 在 Play Framework URL 中传递 MongoDB ObjectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14073258/