Итак, у меня есть веб-приложение, которое использует 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?