【发布时间】:2023-03-08 13:18:01
【问题描述】:
有没有办法在视图中获取 javascript 中的 java 控制器方法返回的值?
我想做的是:
我正在查看由控制器方法 X.show() 渲染的 showX
我想创建一个对象 y 所以 $.post('@{Y.create()}')
现在我需要创建的 y 类型对象的 id 才能在同一个视图 (showX) 中使用它。
这可能吗?
【问题讨论】:
标签: java javascript playframework
有没有办法在视图中获取 javascript 中的 java 控制器方法返回的值?
我想做的是:
我正在查看由控制器方法 X.show() 渲染的 showX
我想创建一个对象 y 所以 $.post('@{Y.create()}')
现在我需要创建的 y 类型对象的 id 才能在同一个视图 (showX) 中使用它。
这可能吗?
【问题讨论】:
标签: java javascript playframework
听起来你需要的是从你的控制器方法返回 JSON(虽然你的问题很模糊)。
例如,在您的控制器中,您可以这样做
public static void myActionOne() {
renderJSON(myObject);
}
然后您将使用$.post 从您的javascript 调用myActionOne。如果您还没有使用它,我还建议您查看 Play jsAction 标签。这将返回对象的 JSON 表示。然后,您可以获取所需的任何信息并以相同的方式调用第二个操作。
再次,在第二个操作中,我建议jsAction,因为它可以更轻松地将参数传递到您的操作中。
编辑: 根据您的编辑,您需要做的就是在您的控制器方法 Y.create 中,执行类似
public static void create() {
MyObject obj = new MyObject();
obj.save();
Long id = obj.id;
renderJSON(id);
}
显然,您创建对象的代码会有所不同,但您明白了。然后,您可以从 JQuery 发布响应中获取数据,并使用标准 javascript 访问已返回的 id。
【讨论】:
你的问题太模糊了。但是您可能需要 AJAX 来获得这种值。
看这里:http://www.oracle.com/technetwork/articles/javaee/ajax-135201.html
【讨论】: