var catids = new Array();
我有一个catids数组,我在其中存储选中的复选框值,如下所示。
cat = $("input[name=catChkBox]:checked").map(function () {
return $(this).data('name');
}).get().join(",");
cat变量形成这样的1,2,3 ..
我想将此“猫”发送到java方法并打印这些值。
我像这样通过dwr调用将值传递给java
DataHandler.getTasks( categories, {callback:function(data){
}, errorHandler:function(){
},async:false
});
我已经为pojo配置了dwr。我应该为参数配置什么吗?
我尝试了下面的代码,但是什么也没得到。
public List<Facade> getTasks(String myIds){
String[] ids = catids .split(",");
System.out.println("-------size of cat id------------" + myIds.length);
for (int i=0; i<myIds.length;i++)
System.out.println(myIds[i]);
//最后,它将返回一个pojo,我将在dwr调用的数据中接收它。
------猫id的大小------------是1
myIds [i]不打印任何内容
我需要它作为整数回来。
我在做什么错?
最佳答案
我将以这种方式进行。
JavaScript创建像这样的json对象{"categoryIds": [1,2,3,4,5]}
Java转换器使用例如Gson或Jackson库将json转换为Java POJO对象。
转换后,您可以使用具有类别列表的java POJO对象。
如果使用此解决方案,您的代码将更加清晰,并且您可以使用相同的清晰解决方案在JavaScript和Java之间共享更多对象。
示例(伪代码)
CategorList类
public class CategoryList {
private ArrayList<Category> categoryList;
// getters and setters
}
转换器
public class CategoryListConverter {
public CategoryList convert(String json) {
Gson g = new Gson();
CategoryList cl = g.fromJson(json, CategoryList.class);
return cl;
}
}
关于java - 从列表中将数组的值从javascript获取到Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16008981/