2014-12-16 3 views
0

Обычно, когда пользователь отправляется, запрос передается контроллеру весны.Как передать индивидуальный запрос контроллеру весной mvc?

и контроллеры имеют форму этой TestController (HttpServletRequest запрос, HttpServletResponse ответ)

Я хочу передать "MyHttpSevletRequest, MyHttpServletResponse" не "HttpSevletRequest, HttpServletResponse".

Возможно ли это? Я хочу знать, возможно ли это, и как? в технике.

Не сказать, что «Нет необходимости в том, что альтернативный путь не является здесь»

Любой ответ будет appreiciated. Спасибо.

+0

Вы можете реализовать свой собственный ['HandlerMethodArgumentResolver'] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/method/support/HandlerMethodArgumentResolver.html). Однако, как правило, когда кто-то хочет представить свой собственный запрос/ответ, что-то другое, как правило, является лучшим решением. Зачем тебе это нужно? –

+0

Большое спасибо. Это то, чего я хотел. большое спасибо. Почему я хочу сделать это, чтобы обрабатывать различные типы запросов. например flex request, extjs, стандартный запрос ... и так далее. Если я реализую объект MRequest, то какой клиент будет не важен. Я могу получить запрос в последовательном порядке getParam(); – trytop

ответ

0

Я не знаю, как это сделать напрямую, но я знаю обходное решение, чтобы получить то, что вы намереваетесь сделать.

Вы можете использовать пружину aop methodbeforeadvice и afterreturningadvice, чтобы получить объекты запроса и ответа до и после того, как они вводят/оставляют метод действия. В принципе, вы можете использовать перехватчик ответа на запрос. В этом случае вы можете написать метод трансформатора, который будет принимать стандартный объект запроса и ответа в качестве входных данных и выводит вас с вашим пользовательским объектом запроса и ответа (ваш пользовательский класс должен реализовать интерфейс HttpServletRequest), а затем переопределить объекты запроса и ответа с помощью вашего пользовательского объекты.

+0

Я когда-либо видел перед «MRequest, MResponse» в контроллере. У меня нет источника этого. но я видел, что это хорошо работает. MRequest отличается от Request дополнительным методом getParam(). Я хочу реализовать это. но я могу начать, потому что я не знаю, как это могло быть. – trytop

+0

Любая теория будет оценена по достоинству. спасибо – trytop

+0

То, что я предложил, сделайте перехватчик .. переконвертируйте свой стандартный объект запроса своим пользовательским объектом запроса .. так что когда-либо это произойдет в вашем контроллере, будет ваш пользовательский объект запроса, и вы можете использовать его там как свой Желание .. –

Смежные вопросы