获取数组的值从javascript到Java的列表

getting the values of array from javascript to java as list

本文关键字:Java javascript 列表 数组 获取      更新时间:2023-09-26
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------------的大小为1myIds[i]不打印任何内容

我需要它作为一个整数返回。我犯了什么错误?

我将这样做。

  1. JavaScript创建如下json对象:{"categoryIds": [1,2,3,4,5]}
  2. Java转换器将json转换为Java POJO对象,例如使用Gson或Jackson库。
  3. 转换后,你可以使用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;
    }
}

我试了试代码,它工作良好

   getTasks("1,2,3");

检查发送给getTask的categoresids的值

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

request.getParameter('categoryId');