我正在尝试使用play框架中的jsRoutes进行ajax调用。它适用于不带任何参数的请求,但是当我尝试调用一个以Long作为参数的控制器方法时,它会失败而没有错误消息。这里有一些代码可以更好地解释它。
控制器类Users.java:
public static Result addToShortList(long id) {
return whatever
}
CONF /路由
POST /shortList/:userId controllers.Users.addToShortList(userId: Long)
在Application.java控制器文件中,我返回jsRoutes,如下所示:
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Application.frontpage(),
...
controllers.routes.javascript.Users.addToShortList(),
controllers.routes.javascript.Users.removeFromShortList()));
}
现在在我的javascript中,我可以通过执行以下操作来使用jsRoutes:
jsRoutes.controllers.Users.addToShortList(id).ajax({
success : function(data) {
alert(data);
},
error : function(err) {
//code always ends up here, with the err giving no eerror message at all!
alert(err);
}
});
似乎播放框架的这个功能很难记录,或者我只是盲目不在任何地方找到它...
感谢您的帮助!
答案 0 :(得分:5)
好的,我自己想出了问题。问题似乎是我在控制器方法中使用了long(primitive)。为什么这是一个我不知道的问题。