gpt4 book ai didi

java - 将 List 传递给 Play Framework 中的 Jquery

转载 作者:行者123 更新时间:2023-11-30 03:18:44 25 4
gpt4 key购买 nike

我正在使用 Play 2.2.6,需要获取 List<String>String[]从 Controller 到我的 jQuery Ajax 调用。

我的 Controller 看起来像:

 public static Result list(){
List<String> cname = new ArrayList<String>();
String[] arr= new String[]{"abc","abc2"};
return ok(index.render(arr));
}

索引方法代码:

public static Result index(){
String[] arr= new String[]{"abc","abc2"};
return ok(index.render(arr));
}

我的 jQuery 函数如下所示:

<script>
$(function() {
ajaxCall();
});
var ajaxCall = function() {
var ajaxCallBack = {
success : onSuccess,
error : onError
}

jsRoutes.controllers.Application.list().ajax(ajaxCallBack);
};

var onSuccess = function(data) {
console.log(data)
}
var onError = function(error) {
alert(error);
}
</script>

该脚本位于index.scala.html 文件中,路由为:

GET     /                   controllers.Application.index()
POST / controllers.Application.list()
GET /javascriptRoutes controllers.JavascriptRoute.javascriptRoutes

Ajax 响应非常适合字符串类型,例如如果我说

return ok("This is string");

然后我可以在 Ajax 响应中看到它,但无法弄清楚为什么数组或列表会抛出以下错误:

Internal server error, for (GET) [/] ->
cannot find symbol [symbol: method ok(java.lang.String[])] [location: class controllers.Application]

顺便提一下,我在路由中将此方法定义为 POST。

有什么建议吗?

最佳答案

问题是您正在使用渲染的索引模板进行响应,并且在尝试渲染该模板时抛出异常。您想要做的是使用 JSON 数据进行响应。

public static Result list(){
String[] arr= new String[]{"abc","abc2"};
return ok(Json.toJson(arr));
}

使用以下代码在我的浏览器中进行本地测试

$.ajax({
method: "POST",
url: "/",
dataType: "script",
success : function(data) {
console.log(JSON.parse(data));
}
});

编辑:所以你可以这样做:

List<ObjectNode> objectNodes = new ArrayList<>();
ObjectNode objectNode = Json.newObject();
objectNode.put("Latitude", "13.679389");
objectNode.put("Longitude", "-13.679389");
objectNodes.add(objectNode);
// create loop to add more nodes
return ok(Json.toJson(objectNodes));`

在您的 ajax 响应中,您现在将拥有一个包含经度和纬度值的节点列表

关于java - 将 List<String> 传递给 Play Framework 中的 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31880167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com