将数组的值从javascript获取为java作为列表

时间:2013-04-15 06:32:50

标签: java javascript arrays list dwr

var catids = new Array();

我有一个catids数组,我存储已选中的复选框值,如下所示。

cat = $("input[name=catChkBox]:checked").map(function () {
  return $(this).data('name');
  }).get().join(",");

cat变量形成类似于1,2,3 ..

的东西

我想将此“cat”发送到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调用的数据中接收它。

------- cat id的大小------------是1 myIds [i]什么都不打印

我需要它作为整数回来。 我在做什么错误?

3 个答案:

答案 0 :(得分:2)

我会这样做。

  1. JavaScript创建类似于此{"categoryIds": [1,2,3,4,5]}
  2. 的json对象
  3. Java转换器使用例如GsonJackson库将json转换为java POJO对象。
  4. 转换后,您可以使用包含类别列表的java POJO对象。
  5. 如果您使用此解决方案,您的代码将更加清晰,您将能够使用相同的清晰解决方案在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;
        }
    }
    

答案 1 :(得分:0)

我尝试了很好的代码

   getTasks("1,2,3");

检查categoriesIds的值是什么发送到getTask

答案 2 :(得分:0)

从网页发送此form parameter。然后从java中的HttpServletRequest request对象获取此内容。

request.getParameter('categoryId');