Обработка запросов Ajax с весны - PullRequest
0 голосов
/ 10 мая 2010

Вот моя проблема, мне нужно сопоставить AJAX-запрос с использованием Spring. Теперь я знаю, что мне нужны эти два парня:

HttpServletRequest, чтобы получить сообщение, отправленное мне клиентом, и проанализировать его из JSON (наиболее вероятно) в Map и HttpServletResponse, чтобы передать мое сообщение клиенту. То, что я не знаю, это правильный (простой, лаконичный) способ сделать это ...

Вот пример кода с сайта Springframework:

/**
 * Normal comments here
 *
 * @@org.springframework.web.servlet.handler.metadata.PathMap("/foo.cgi")
 * @@org.springframework.web.servlet.handler.metadata.PathMap("/baz.cgi")
 */
public class FooController extends AbstractController {

    private Cruncher cruncher;

    public FooController(Cruncher cruncher) {
        this.cruncher = cruncher;
    }

    protected ModelAndView handleRequestInternal (
            HttpServletRequest request, HttpServletResponse response) throws Exception {
        return new ModelAndView("test");
    }
}

Что приятно. Кроме того, насколько я могу видеть, я не могу сопоставить URL-адрес для каждого метода в этом классе, как я сделал бы с этим видом синхронного запроса:

@Controller
@RequestMapping("/test")
public class ControllerTest {
    @RequestMapping(value = "/test.htm", method = RequestMethod.GET)
    public void showSearchView(Model model) {...}
    ...
}

Могу ли я сделать что-то такое простое для запросов AJAX?

Ответы [ 2 ]

1 голос
/ 10 мая 2010

Не уверен, где вы нашли этот первый пример на SpringSource!Это старый-плохой (тм) способ сделать это.Я почти уверен, что AbstractController даже помечен как устаревший в Spring 3.

Второй способ отлично работает для отображения запросов AJAX.Если вы действительно хотите разобрать все это самостоятельно, HttpServletRequest и HttpServletResponse являются допустимыми параметрами для этого метода-обработчика.Однако Spring с радостью сделает это за вас: http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/

(Если вы застряли в более старой версии Spring, есть также сторонние библиотеки для добавления отображения JSON в обработчики.)

0 голосов
/ 10 мая 2010

Это ответ, который я нашел. Я изменил метод, показанный в моем сообщении, и добавил HttpServletRequest к аргументам метода.

public void showSearchView(Model model, HttpServletRequest req, HttpServletRequest resp) {
        if(req==null||resp==null)throw new RuntimeException("OLOLOLOLOL xD");
}

Вот и все. Если у кого-то есть лучший ответ или комментарии, я буду рад услышать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...