Я использую весенний mvc с freetemplate.Имеет ли весна mvc response.write для вывода в браузер напрямую?
В asp.net вы можете написать прямо в браузере с помощью Response.Write («hello, world»);
Можете ли вы сделать это весной mvc?
Я использую весенний mvc с freetemplate.Имеет ли весна mvc response.write для вывода в браузер напрямую?
В asp.net вы можете написать прямо в браузере с помощью Response.Write («hello, world»);
Можете ли вы сделать это весной mvc?
Вы можете:
получить HttpServletResponse
и печатать его Writer
или OutputStream
(в зависимости от того, нужно ли отправлять текстовые или двоичные данные)
@RequestMapping(value = "/something")
public void helloWorld(HttpServletResponse response) {
response.getWriter().println("Hello World")
}
Используйте @ResponseBody
:
@RequestMapping(value = "/something")
@ResponseBody
public String helloWorld() {
return "Hello World";
}
Таким образом, ваш текст Hello World
будет записан в поток ответов.
Если вы используете аннотированный контроллер (или не аннотированный по этому вопросу, я считаю ...), вы можете использовать метод аргумент HttpServletResponse
в контроллере, чтобы получить выходной поток, а затем записать на экран - см http://download.oracle.com/docs/cd/E17410_01/javaee/6/api/javax/servlet/ServletResponse.html#getOutputStream%28%29
Для получения дополнительной информации о параметрах, которые вы можете использовать в ваших контроллерах/обработчиках см http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html (раздел 13.11.4)
я уверен, что это возможно в некоторых контекстах. Например, если у вас есть HttpServletResponse
объект, доступный вам (как вы делаете в Controller
, или если вы пишете свой собственный View
), вы можете позвонить getWriter()
или getOutputStream()
и написать на это.
Но вам нужно быть осторожным, чтобы убедиться, что то, что вы делаете, не мешает вам использовать шаблоны FreeMarker. И я не уверен, сможешь ли вы управлять им из шаблона FreeMarker.
Если вы хотите отправить что-то OutputStream, даже если вы используете Freemaker, просто используйте @ResponseBody
пример:
@RequestMapping(value = "report1", method = RequestMethod.GET, produces = "application/pdf")
@ResponseBody
public void getReport1(OutputStream out) {
так @responsebody затем игнорирует вид распознаватель? Я использую freemarker – Blankman
Я думаю, да .... – Bozho
Можно ли использовать аналогичный метод для отправки файла непосредственно в выходной поток? Спасибо. – kmehta