Javascript 如何使用arraylist填充数据表
我有一个从控制器返回到jsp的arraylist,现在我想使用该arraylist填充datatable。 这是我所做的,但它不起作用:Javascript 如何使用arraylist填充数据表,javascript,java,spring-mvc,jsp,datatables,Javascript,Java,Spring Mvc,Jsp,Datatables,我有一个从控制器返回到jsp的arraylist,现在我想使用该arraylist填充datatable。 这是我所做的,但它不起作用: $(文档).ready(函数(){ //GRPAPPHAINFOVO是我的控制器返回的arraylist $('#groupAlphaList')。数据表({ “aaData”:“${grpAlphaInfoVO}” }); });首先需要将JAVA ArrayList转换为JSON 为此,您可以使用库 将列表转换为JSON的JAVA代码: public c
$(文档).ready(函数(){
//GRPAPPHAINFOVO是我的控制器返回的arraylist
$('#groupAlphaList')。数据表({
“aaData”:“${grpAlphaInfoVO}”
});
});代码>首先需要将JAVA ArrayList转换为JSON
为此,您可以使用库
将列表转换为JSON的JAVA代码:
public class Test {
static class Entry{
String data1;
Entry(String data1){
this.data1 = data1;
}
}
public static void main(String[] args) {
List<Entry> data = new ArrayList<>();
data.add(new Entry("somevalue"));
data.add(new Entry("otherRandomValues"));
String json = new Gson().toJson(data);
System.out.println(json);
}
}
然后需要使用
将数据从Servlet传输到JSP,其中grpAlphaInfoVOJSONString
是控制器中具有JSON字符串的变量的名称
请参阅以下链接以更好地理解:
然后您需要使用JSON来实现数据表,如下例所示:
$(文档).ready(函数(){
var grpAlphaInfoVOJSON=[{“column1”:“somevalue”},{“column1”:“otherValues”}];
//GRPAPPHAINFOVO是我的控制器返回的arraylist
$('#groupAlphaList')。数据表({
“数据”:grpAlphaInfoVOJSON,
“栏目”:[
{“数据”:“第1列”}
]
});
});代码>
编辑:
问题的解决方案:
$('#groupAlphaList').dataTable({
"aaData": ${grpAlphaInfoVO} ,
"aoColumns": [ { "mDataProp": "groupNumber" }, { "mDataProp": "groupName" } ]
});
原始答案:
添加jQuery JavaScipt以调用控制器:
@RequestMapping
定义终点。它声明服务器端代码有一个方法,可以处理对/groupAlpha/search/{groupName}URL的请求。这是一个声明,不是对控制器的实际调用
任何其他应用程序(Web浏览器、wget、Java应用程序、.NET应用程序、脚本可以调用使用@RequestMapping声明的端点)
JavaScript代码需要调用控制器。JQuery,$。可以使用ajax
函数来完成此操作。找到了我的问题的解决方案,我们需要在填充数据表时指定列:
因为我的json中有两个键,分别是groupNumber和groupName,所以我也需要将它们包含在我的datatable中。下面是示例代码
$('#groupAlphaList')。数据表({
“aaData”:${grpAlphaInfoVO},
“aoColumns”:[{“mDataProp”:“groupNumber”},{“mDataProp”:“groupName”}]
});代码>你不工作是什么意思?你犯了什么错误请不要只说“它不起作用”解释它怎么不起作用working@AmanChhabra它可能应该替换为记号,或者只是一个变量而不是字符串。。。可能是代码无法运行Java或JavaScript的原因?@GetOffMyLawn$(document).ready(函数(){var aaData=JSON.parse(grpAlphaInfoVO);alert(aaData);})代码>这是正确的方法吗?注意:grpapphainnfovo现在是josn字符串var grpapphainfovojson=[{“column1”:“somevalue”},{“column1”:“otherValues”}]代码>这里如何使用我的java json字符串?这就是我所做的,但它没有显示警报消息$(document).ready(函数(){var aaData=JSON.parse(grpAlphaInfoVO);警报(aaData);})
必须使用grpAlphaInfoVOJSONString,其中grpAlphaInfoVOJSONString是在controllervar aaData=中具有JSON字符串的变量的名称代码>这是正确的吗?抱歉,我是java和javascript新手,在实习期间工作,这是meNo u-grpAlphaInfoVO_u是ArrayList的全新学习,您需要首先转换为JSON字符串,如我的回答中所述是的,我将其转换为JSON,只是没有更改变量名,grpalphainfo是JSON字符串是的,我理解,但我想通过我的方式获取数据,我将数据从服务器获取到arraylist中,但我无法在jsp页面中显示该列表。我知道我可以用ajax做到这一点,但它想用我的方式做到。我不能共享整个代码,我在Grplphainfovo中有数据,这是一个json字符串,如果我使用${Grplphainfovo},我可以在我的视图中看到数据,但我希望在javascript中使用这些数据,在我试图创建jquery dataTable的地方,它应该简单到:$('#groupAlphaList').dataTable({data:${Grphainfovo});当我执行`$('#groupAlphaList').dataTable({“aaData”:${grpAlphaInfoVO}}}});`我收到一个错误警报,原因是DataTables警告(表id='groupAlphaList'):从数据源为行0
'$('#groupAlphaList')请求未知参数“0”。dataTable({“aaData”:${grpAlphaInfoVO},aoColumns:[{“mDataProp”:“groupNumber”},{“mDataProp”:“groupName”}“这就解决了问题我真的很高兴你能自己解决它!”!。
$('#groupAlphaList').dataTable({
"aaData": ${grpAlphaInfoVO} ,
"aoColumns": [ { "mDataProp": "groupNumber" }, { "mDataProp": "groupName" } ]
});
$(document).ready(function() {
$.ajax({
type: "GET",
url: "/groupAlpha/search/groupNameValue",
datatype: 'json',
success: function (response) {
grpAlphaInfoVO = response.grpAlphaInfoVO;
$('#groupAlphaList').dataTable({
"aaData": grpAlphaInfoVO
});
}
});
});