Play框架:将java方法返回值设置为javascript var

时间:2011-05-20 05:14:57

标签: java javascript playframework

是否有办法在视图中的javascript中获取java控制器方法返回的值?

我想做的是:

我正在查看由控制器方法X.show()

呈现的showX

我想创建一个对象y所以$ .post('@ {Y.create()}')

现在我需要y类型的创建对象的id才能在同一视图中使用它(showX)。

可能吗?

2 个答案:

答案 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