| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Annotated Spring MVC + dojo.xhrPost() |
| Автор: skulyk 16.6.2009, 16:48 | ||||
| всем добрый день! есть проблема. существует аннотированный контроллер, который должен обрабатывать переход по ссылке
обращение к этой ссылке происходит из java script по Ajax запросу с помощью dojo:
при этом контроллер не отрабатывает. у меня есть класс ControllerInterceptor, который отлавливает все ссылки, он обращение к indexLvg.jsp тоже не получает. возможно, это связано с ajax запросом и его нужно обрабатывать как-то не так. Буду рада любому совету и помощи спасибо! |
| Автор: garbuz 16.6.2009, 17:05 |
| Вроде как спринг явно не поддерживает ajax. Надо юзать DWR или еще какую-нить штуку. В тоже время можно написать обчыный сервлет, который будет обслуживать ajax запросы. |
| Автор: MisterCleric 16.6.2009, 17:10 | ||
| вопрос: а если на прямую вызвать views/subtemplates/objects/lvg/indexLvg.jsp Аякс-то аяксом, а вот урлы сервером должны приниматься по-любом. Понятно, что у тебя там какая-то логика завязана на аякс, но запрос-то должен пойти на сервак... И как выглядит настройка spring в web.xml ? Как тут говорят: "web.xml в студию!" Да, и еще такое: а если попробовать еще добавить к
контекстный путь приложения. Для теста, думаю, можно ручками прописать твой http://localhost:[yourPort]/[yourAppContext]/ |
| Автор: skulyk 16.6.2009, 17:16 |
| у нас в проекте используется dwr, я не могу найти, как его использовать в таком случае. Или нужно просто в функции, которая получает ответ от сервера прописывать вызов dwr метода? этот метод является общим, т.е. ссылка меняется. Контроллер - идеальный для меня вариант, если бы он мог срабатывать по обращению к этим ссылкам. я нашла такую ссылку http://static.springframework.org/spring-webflow/docs/2.0.x/reference/html/ch11s05.html, но у меня пока не получилось все подключить. Возможно, кто-то использовал tiles в этих целях? |
| Автор: MisterCleric 16.6.2009, 17:20 | ||
Считаю отнюдь не верным заключением: аякс не аякс - запросы все-равно должны идти на сервер Да и еще вот опровержение http://www.springsource.org/webflow я думаю, именно эту часть и юзает skulyk, |
| Автор: skulyk 16.6.2009, 17:30 | ||
к сожалению, вызвать напрямую views/subtemplates/objects/lvg/indexLvg.jsp не получается, при загрузке стартуются компоненты YUI, а все ссылки прописаны в index.jsp и он их не находит, если вызвать напрямую. Контроллер отрабатывает, если, например прописать ссылку которая указана в <img src="ссылка">, а через аякс работать не хочет. добавление контекста не помогает. я могу привести web.xml, но там много всего лишнего, я уверена, что контроллеры работают правильно |
| Автор: MisterCleric 16.6.2009, 17:38 | ||||
стоп. А действительно ли это должен быть POST? а что это такое?
по-моему контент должен содержать или JSON-объект или пары имя: значение, что и будет реквест параметрами. Может там еще Dojo не отправляет запрос, так как сам объект XmlHttpRequest не правильно сформирован. Ошибки javascript в студию! |
| Автор: skulyk 16.6.2009, 17:51 |
| этот метод отрабатывает и возвращает содержимое страницы indexLvg.jsp. ошибок нет |
| Автор: goodday1941 16.6.2009, 18:02 | ||
| первое что хочу заметить аджакс не аджакс разници для сервера принципиально нет.. так что говорить что спринг не работает с аджаксом не разумно.... что то мне кажется что вы просто не отправляете запрос ) попробуйте фаербагом посмотреть отсылается ли вообще запрос на сервер Добавлено через 6 минут и 35 секунд
Добавлено через 7 минут и 16 секунд скорее всего там и валится... поставте фаербаг себе сэкономит кучу времени Добавлено через 8 минут и 44 секунды мда что то все что я сочинил уже написал MisterCleric ) |
| Автор: MisterCleric 16.6.2009, 18:14 | ||
goodday1941
RESPECT, дружище !!! |
| Автор: skulyk 16.6.2009, 18:17 |
| посмотрела через FireBug, content=undefinedб прошу прощение за ошибку. запрос отрабатывает, в консоли это видно в ответ приходит содержимое indexLvg.jsp в текстовом виде, в консоли тоже это видно. вопрос в том, должен ли срабатывать спринговый контроллер при таком обращении к этой ссылке? или для этого нужно подключать какие-то спринговые модули? |
| Автор: goodday1941 16.6.2009, 18:26 |
| нет, если я тебя правильно понял )) |
| Автор: MisterCleric 16.6.2009, 18:26 | ||
ну эт нужно читать, как мепинги правильно организовывать... |
| Автор: goodday1941 16.6.2009, 18:28 |
| на сколько я понял ты не обращался к спринговому контроллеру, а просто напрямую к жспихе |
| Автор: skulyk 17.6.2009, 15:15 | ||||
| я сама поняла, что идет прямой запрос к jsp, но не поняла почему. пробовала многие варианты маппинга, но не смогла добиться вызова контроллера по ссылке views/subtemplates/objects/lvg/indexLvg.jsp если только не прописать в web.xml
окончательное решение: ссылки на jsp страницы были заменены на ссылки вида "objects/lvg" web.xml:
в контроллере: @RequestMapping("/objects/lvg") контроллер возвращает return new ModelAndView("../views/subtemplates/objects/lvg/indexLvg.jsp", "model", model); теперь контроллер вызывается и потом показывается сама jsp страница запрос так и отправляется через dojo.xhrPost() так что ajax действительно был ни при чем. спасибо всем, кто откликнулся! |
| Автор: MisterCleric 17.6.2009, 15:27 | ||||||
можно еще в конфиге centricstor-сервлета прописать ViewResolver что упростить возврат ссылки на вью
и потом код из цитаты превращается в:
|