Создание сортировки Dojo Grid с помощью Spring и JSON - PullRequest
5 голосов
/ 09 декабря 2011

Итак, у меня есть веб-приложение, которое использует Dojo и Spring.У меня есть несколько сеток в приложении, которые загружаются из магазинов Json Dojo.Все выглядит хорошо, но сейчас я пытаюсь осуществить сортировку.Согласно эта ссылка dojo не сортирует сетки из хранилищ, а оставляет это на усмотрение сервера.Хорошо, я предполагаю, что могу работать с этим, однако я сталкиваюсь с проблемами, фактически делая это.

Чтобы получить данные в мои таблицы, я заставляю их называть путь, который определяется моим контроллером.Например, чтобы загрузить мою сетку вакансий, dojo создает магазин и вызывает / job / data.Вот код моего контроллера для этого:

@RequestMapping(value="/job/data", method=RequestMethod.GET,
        headers="Accept=application/json")
public @ResponseBody List<Job> getData() {
    return jobService.getAll();
}

Я использую процессор Джексона Json, поэтому он хорошо работает для возврата данных, отформатированных в Json.Dojo получает данные и отображает их без проблем.Когда пользователь щелкает заголовок столбца для сортировки, Dojo добавляет к пути, который называется, создавая что-то вроде этого (например, при сортировке по столбцу programName): / job / data? Sort (+ programName)

Моя проблема в том, что, хотя этот код все еще вызывает вышеуказанный метод, я не уверен, как получить доступ к этой проверенной части.Я попытался использовать параметр @RequestParam, но это не сработало, и из-за этого метод вообще не работает.Вот что я попробовал:

@RequestMapping(value="/job/data", method=RequestMethod.GET,
        headers="Accept=application/json")
public @ResponseBody List<Job> getData(@RequestParam("sort") String sort) {
    log.info("Not getting here anymore");
}

У кого-нибудь есть идеи?Мне интересно, если часть проблемы заключается в том, что прикрепленная часть не соответствует нормальному синтаксису? Sort = что-то.В любом случае, как я уже сказал, добавление @RequestParam в любом случае не работает с этим методом.Под этим я подразумеваю, что даже если метод снова вызывается как / job / data без привязки к параметрам, я получаю ошибку.Пожалуйста, дайте мне знать, если вам нужно что-то еще от меня, так как эта проблема для работы, и я мог бы действительно использовать некоторые идеи.Спасибо.

ОБНОВЛЕНИЕ

Я нашел ссылку после тонн поиска, которая почти решает эту проблему.Но, конечно, парень из Spring сам сталкивается с моей проблемой, и его код не решает ее.Он упоминает:

JsonStore отправляет свой параметр "sort" в виде "sort (+ fieldName1, + fieldName2, -fieldName3, ...)", таким образом, все это становится ключом параметра,Это неудобно для обработки в Spring MVC, так как требует перехода к HttpServletRequest и перебора ключей параметров, чтобы найти тот, который начинается с «sort», в отличие от возможности использовать аннотацию аргумента обработчика @RequestParam.

Так кто-нибудь может знать, как я это сделаю?

ОБНОВЛЕНИЕ 2

Кто-нибудь?Я просто спрашиваю, может ли кто-нибудь указать мне правильное направление реализации решения, которое я уже нашел.Как получить доступ к объекту HttpServletRequest из метода контроллера пружины, чтобы получить доступ к испорченному параметру сортировки, который отправляет Dojo?

1 Ответ

1 голос
/ 19 декабря 2011

Если вы включите HttpServletRequest request в метод контроллера (он автоматически вводится пружиной MVC), вы можете получить доступ к различным параметрам следующим образом:

Set parameters = request.getParameterMap().keySet();
for(Object param : parameters){
  //Here you can process the params to retrieve the names and ordering direction
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...