получение значений массива из javascript в java в виде списка

var catids = new Array();

У меня есть массив catids, в котором я храню отмеченные значения флажков, как показано ниже.

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

переменная cat образует что-то вроде этого 1,2,3..

Я хочу отправить эту «кошку» в метод java и распечатать эти значения.

Я передаю значения в java через вызов dwr, подобный этому

  DataHandler.getTasks( categories, {callback:function(data){
  }, errorHandler:function(){
  },async:false
   });

Я настроил dwr для pojo. я должен настроить что-нибудь для параметров?

Я попробовал приведенный ниже код, но ничего не получил.

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.

------- размер идентификатора кошки ------------ 1 myIds[i] ничего не печатает

Мне это нужно как целое число назад. Какую ошибку я делаю?


person sahana    schedule 15.04.2013    source источник
comment
Вы упустили только самую важную часть: КАК вы отправляете этого кота на java?   -  person vinczemarton    schedule 15.04.2013
comment
Пожалуйста, введите пример использования метода od getTasks - как categoryIds выглядит перед вызовом метода и как он должен выглядеть?   -  person pepuch    schedule 15.04.2013


Ответы (3)


Я сделаю это таким образом.

  1. JavaScript создает объект json, подобный этому {"categoryIds": [1,2,3,4,5]}
  2. Конвертер Java преобразует json в объект POJO java, используя, например, Gson или библиотека Джексона.
  3. После преобразования вы можете работать с java-объектом POJO, который имеет список категорий.

Если вы воспользуетесь этим решением, ваш код станет более понятным, и вы сможете совместно использовать больше объектов между JavaScript и Java, используя одно и то же понятное решение.

Пример (псевдокод)

Класс Категорлист

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;
    }
}
person pepuch    schedule 15.04.2013

Я попробовал код, он работал нормально

   getTasks("1,2,3");

проверьте, какое значение categoryIds отправляется в getTask

person aymankoo    schedule 15.04.2013

Отправьте это как form parameter с веб-страницы. Затем получите это из объекта HttpServletRequest request в java.

request.getParameter('categoryId');
person Muhammad Imran Tariq    schedule 15.04.2013