Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring MVC несколько view resolver / 20 сообщений из 20, страница 1 из 1
27.03.2012, 22:55:21
    #37726439
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
1) Можно ли сделать, а если можно то как следующее.
Создать несколько view resolver например один для jsp, один для velocity, чтобы из контроллера можно было выбрать какой из них использовать. Например есть запрос /adress?view=vm - используется view velocity, а если /adress?view=jsp то соответственно jsp.
Это выдуманный пример, просто интересно как это сделать :)

2) Как правильно сделать ответ на запрос скажем в виде JSON или XML?
Правильно ли для этого использовать @ResponseBody и просто отдавать строку?

Спасибо.
...
Рейтинг: 0 / 0
28.03.2012, 11:39:27
    #37727039
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
rdm1) Можно ли сделать, а если можно то как следующее.
Создать несколько view resolver например один для jsp, один для velocity, чтобы из контроллера можно было выбрать какой из них использовать. Например есть запрос /adress?view=vm - используется view velocity, а если /adress?view=jsp то соответственно jsp.
Это выдуманный пример, просто интересно как это сделать :)

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-viewresolver-chaining

rdm2) Как правильно сделать ответ на запрос скажем в виде JSON или XML?
Правильно ли для этого использовать @ResponseBody и просто отдавать строку?

Почему строку отдавать? Объект нужно отдавать. А спринг пусть его сериализует в JSON или XML.
...
Рейтинг: 0 / 0
28.03.2012, 12:11:49
    #37727093
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
rdmНапример есть запрос /adress?view=vm
я так представляю, что ГУИ общается с серверной стороной посредством API вида
/Procedure?ПараметрыПроцедуры
и выносить смену ИМЕНИ или ТЕХНОЛОГИИ контроллёра на этот уровень - не есть хорошо.
Тем более, что эти ярлыки хранятся на рабочем столе клиента - "вечно".
Хотя есть для ЯП всякие RTTI \ рефлекцион которые эту вечность обходят.
imho
...
Рейтинг: 0 / 0
28.03.2012, 13:06:25
    #37727221
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Blazkowicz, я читал этот раздел, но не совсем понял как это выглядит в виде кода.
Как я понимаю это довольно распространенная практика, иметь разные view такие как HTML, PDF, XML, JSON. Хотелось бы увидеть, как это сделано. Не уловил что надо возвращать в методе контроллера, чтобы был использовался нужный view resolver, и как работает цепочка view resolver'ов.
...
Рейтинг: 0 / 0
28.03.2012, 13:08:50
    #37727229
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Blazkowicz, т.е. сделать например

public @ResponseBody String methodABC() {

....
....
return JSONObject.toString()

}

не правильно?
...
Рейтинг: 0 / 0
28.03.2012, 13:10:42
    #37727239
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Petro123, про смену технологии это слегка надуманно конечно) Я скорее имел ввиду смену представления) Скажем HTML, PDF и XML. Для этого нужны разные view resolver'ы если я правильно понимаю.
...
Рейтинг: 0 / 0
28.03.2012, 13:16:21
    #37727255
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
rdmPetro123, про смену технологии это слегка надуманно конечно) Я скорее имел ввиду смену представления) Скажем HTML, PDF и XML. Для этого нужны разные view resolver'ы если я правильно понимаю.
ну дак приведи пример URL из сети, будет проще обсуждать "надуманность".
...
Рейтинг: 0 / 0
28.03.2012, 13:21:43
    #37727264
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Petro123, например есть страница HTML по адресу /info, а я хочу получить ту же страницу но в виде PDF.
Используется ведь та же модель, но другое представление. Скажем PDF версия доступна по адресу /info?view=pdf.
Для этого в spring MVC опять же как я понимаю используется другой view resolver.
...
Рейтинг: 0 / 0
28.03.2012, 13:24:21
    #37727268
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
rdmPetro123, например есть страница HTML по адресу /info, а я хочу получить ту же страницу но в виде PDF.
Используется ведь та же модель, но другое представление. Скажем PDF версия доступна по адресу /info?view=pdf.
Для этого в spring MVC опять же как я понимаю используется другой view resolver.
Ну, нафига вам GET параметры? Когда на всех углах твердят про Friendly URL:
/info.html
/info.pdf

Спринг по suffix свойству в резолвере найдёт.
...
Рейтинг: 0 / 0
28.03.2012, 13:24:39
    #37727269
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
...
Рейтинг: 0 / 0
28.03.2012, 13:30:05
    #37727277
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
rdmpublic @ResponseBody String methodABC() {
return JSONObject.toString()
}
не правильно?

Зачем вам в контроллере везде писать JSON сериализацию, если можно отдать это на откуп Spring конфигу. Тогда контроллер будет выглядеть так:

Код: java
1.
2.
3.
public @ResponseBody Student findStudent() {
  return service.findStudent();
}
...
Рейтинг: 0 / 0
28.03.2012, 13:45:10
    #37727319
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Blazkowicz, я ничего против такой записи не имею) Таким образом мне просто задать несколько бинов с разными suffix.

<bean id=" ViewResolverJSP " class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="2"/>
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

<bean id=" ViewResolverVelocity " class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="order" value="1"/>
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
</bean>


Из контроллера я возвращаю строку или ModelAndView с именем hello. Какаой шаблон будет использоваться hello.jsp или hello.vm ?
И как указать какой использовать? Уникальные имена?
...
Рейтинг: 0 / 0
28.03.2012, 13:49:19
    #37727331
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
rdmКакаой шаблон будет использоваться hello.jsp или hello.vm ?
Тот, который клиент просит (см HttpServletRequest). Если клиент просит .jsp, то и получит jsp. Если просит vm, то и получит его.

rdmИ как указать какой использовать? Уникальные имена?
Зачем контроллеру указывать конкретный тип view, если view резолвер, сам найдёт?
...
Рейтинг: 0 / 0
28.03.2012, 13:56:33
    #37727346
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Blazkowicz, эх) Мне кажется я все таки не понимаю какой-то базовой вещи)
Допустим:

web.xml

<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>


Код

@Controller
public class ControllerTest {


@RequestMapping(value="/mySimplePage")
public String oneMethod() {

return "hello"; //
}
}

С учетом выше написанного, .jsp или .vm ? )
...
Рейтинг: 0 / 0
28.03.2012, 14:00:48
    #37727358
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Petro123, действительно) Есть замечательная статья на IBM http://www.ibm.com/developerworks/ru/edu/os-ag-springframe6/section5.html , в ней рассматриваются разные виды(jsp, velocity, pdf).
...
Рейтинг: 0 / 0
28.03.2012, 14:10:42
    #37727382
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
rdmBlazkowicz, эх) Мне кажется я все таки не понимаю какой-то базовой вещи)
Эта базовая вещь заключается в том что контроллер сам по себе не запускается. Его запуск является следствием обработки некоторого зарпоса.
Не пренебрегайте чтением исходного кода. Посмотрите UrlBasedViewResolver.buildView()
И ещё DispatcherServlet полистайте. По поводу его свойства viewResolvers.
...
Рейтинг: 0 / 0
28.03.2012, 14:11:50
    #37727388
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
rdmPetro123, действительно) Есть замечательная статья на IBM http://www.ibm.com/developerworks/ru/edu/os-ag-springframe6/section5.html , в ней рассматриваются разные виды(jsp, velocity, pdf).
25.05.2007 - учтите, что с тех пор много воды утекло.
...
Рейтинг: 0 / 0
28.03.2012, 14:20:50
    #37727417
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Blazkowicz, потому и спрашиваю) Это была первый материал который я читал про spring mvc, после этого много чего еще читал включая документацию, но в этом вопросе понимания не достиг)
...
Рейтинг: 0 / 0
28.03.2012, 14:51:56
    #37727517
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
BlazkowiczrdmBlazkowicz, эх) Мне кажется я все таки не понимаю какой-то базовой вещи)
Эта базовая вещь заключается в том что контроллер сам по себе не запускается. Его запуск является следствием обработки некоторого зарпоса.
Не пренебрегайте чтением исходного кода. Посмотрите UrlBasedViewResolver.buildView()
И ещё DispatcherServlet полистайте. По поводу его свойства viewResolvers.
+ ещё аффтару попробовать без спринг.
Я понимаю ещё, в веб-сервисе можно наплевать на URL строку.
Сделать а-ля override метод, где по типу переменной, на выходе разный "формат".
Но в URL-HTTP свои законы.
IMHO
...
Рейтинг: 0 / 0
28.03.2012, 15:13:00
    #37727588
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC несколько view resolver
Спасибо за ваши ответы!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring MVC несколько view resolver / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]