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转换器使用例如GsonJackson库将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/

10-14 18:02