是否有办法在视图中的javascript中获取java控制器方法返回的值?
我想做的是:
我正在查看由控制器方法X.show()
呈现的showX我想创建一个对象y所以$ .post('@ {Y.create()}')
现在我需要y类型的创建对象的id才能在同一视图中使用它(showX)。
可能吗?
答案 0 :(得分:2)
这听起来像你需要的(虽然你的问题非常模糊),是从你的控制器方法返回JSON。
例如,在你的控制器中,你可以做到
public static void myActionOne() {
renderJSON(myObject);
}
然后,您将使用myActionOne
从您的JavaScript调用$.post
。如果您还没有使用它,我还建议您查看Play jsAction
标记。这将返回对象的JSON表示。然后,您可以获取所需的任何信息,并以相同的方式调用第二个操作。
同样,在第二个操作中,我建议使用jsAction
,因为它可以更轻松地将参数传递到您的操作中。
修改强>: 根据您的编辑,您需要做的只是在您的控制器方法Y.create中,执行类似
的操作public static void create() {
MyObject obj = new MyObject();
obj.save();
Long id = obj.id;
renderJSON(id);
}
显然,你创建对象的代码会有所不同,但你明白了。然后,您可以使用标准javascript从JQuery post响应中获取数据,并访问已返回的id。
答案 1 :(得分:1)
你的问题太模糊了。但是你可能需要AJAX来获得这种价值。
看看这里:http://www.oracle.com/technetwork/articles/javaee/ajax-135201.html