如何在 Play 框架中将字典对象从 AJAX 传递到控制器类
how to pass dictionary object from ajax to controller class in play framework
我的视图页面中有dynatree,我想在每次拖放操作时保存树的当前状态,问题是我无法将该dict对象传递给控制器。ajax 的代码如下:
onDrop: function(node, sourceNode, hitMode, ui, draggable) {
/** This function MUST be defined to enable dropping of items on
* the tree.
*/
logMsg("tree.onDrop(%o, %o, %s)", node, sourceNode, hitMode);
sourceNode.move(node, hitMode);
//save state to backend
var currentTree = $("#tree").dynatree("getTree").toDict();
$.post("/Application.java", { recieved: currentTree},
function(data) {
$("#output").html(data);
});
//expand the drop target
sourceNode.expand(true);
},
我用java编写了一个获取该字典对象的方法。但它在路由文件中给了我错误。错误:未找到:在此行中键入字典
POST/hello/:d ict controllers.Application.check(dict:Dictionary(
你的代码中有很多问题。
首先,对于主要问题,routes
文件无法编译,因为它确实知道您的类Dictionary
。所以你必须告诉文件这个类(包+类(的限定名:
POST /hello/:dict controllers.Application.check(dict:package.to.Dictionary)
但是 AFAIK,它也可能不起作用,因为 Url ( dict
( 的动态部分应该可以在 URL 中打印,因为,您必须调用 URL 并将您的字典编码到其中。让我们说:/hello/thisIsMyDict
因此,最好的选择是删除路由文件中 URL 的动态部分:
POST /hello/ controllers.Application.check()
然后,在您的操作中,使用 DynamicForm 获取正文参数,例如:
public static Result check() {
DynamicForm myForm = form().bindFromRequest();
String dict = myForm.get("recieved");
// convert the string to your Dictionary object
...
}
最后,你的javascript代码应该看起来像这样:
var currentTree = $("#tree").dynatree("getTree").toDict();
$.post("@controllers.routes.Application.check()", { recieved: currentTree},
function(data) {
$("#output").html(data);
});
相关文章:
- 从控制器返回后Ajax启动事件激发
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 通过rails中的Ajax在控制器B的每个视图中渲染控制器a的视图
- 当通过AJAX调用时,控制器操作不会执行
- 如何使用Ajax调用特定的控制器和操作来重定向用户
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 使用 JQUERY AJAX (Spring MVC) 从控制器中删除
- 调用控制器后Ajax抛出错误
- 从控制器返回到Ajax的数据混乱
- 使用AJAX POST从javascript到带有Strong参数的Rails4控制器
- 使用ajax在同一页面中获取控制器动作渲染
- 如何使AngularJS控制器依赖于通过ajax加载在rootScope上的值
- JQuery$.ajax()发布数据以调用我的控制器中的方法
- Ajax”;链接_;当点击非常快时发送多个请求控制器请求(Rails4)
- Yii2中的Ajax+控制器操作
- 在控制台中隐藏AJAX控制器调用
- 将PathVariable传递给AJAX控制器
- 为所有ajax请求创建ajax控制器
- 第一次尝试在Rails中使用Ajax:控制器呈现空文档