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

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

Спасибо.
...
Рейтинг: 0 / 0
Spring MVC несколько view resolver
    #37727039
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Spring MVC несколько view resolver
    #37727093
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmНапример есть запрос /adress?view=vm
я так представляю, что ГУИ общается с серверной стороной посредством API вида
/Procedure?ПараметрыПроцедуры
и выносить смену ИМЕНИ или ТЕХНОЛОГИИ контроллёра на этот уровень - не есть хорошо.
Тем более, что эти ярлыки хранятся на рабочем столе клиента - "вечно".
Хотя есть для ЯП всякие RTTI \ рефлекцион которые эту вечность обходят.
imho
...
Рейтинг: 0 / 0
Spring MVC несколько view resolver
    #37727221
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, я читал этот раздел, но не совсем понял как это выглядит в виде кода.
Как я понимаю это довольно распространенная практика, иметь разные view такие как HTML, PDF, XML, JSON. Хотелось бы увидеть, как это сделано. Не уловил что надо возвращать в методе контроллера, чтобы был использовался нужный view resolver, и как работает цепочка view resolver'ов.
...
Рейтинг: 0 / 0
Spring MVC несколько view resolver
    #37727229
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, т.е. сделать например

public @ResponseBody String methodABC() {

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

}

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

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

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

Код: java
1.
2.
3.
public @ResponseBody Student findStudent() {
  return service.findStudent();
}
...
Рейтинг: 0 / 0
Spring MVC несколько view resolver
    #37727319
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Spring MVC несколько view resolver
    #37727331
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmКакаой шаблон будет использоваться hello.jsp или hello.vm ?
Тот, который клиент просит (см HttpServletRequest). Если клиент просит .jsp, то и получит jsp. Если просит vm, то и получит его.

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


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