|
|
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
1) Можно ли сделать, а если можно то как следующее. Создать несколько view resolver например один для jsp, один для velocity, чтобы из контроллера можно было выбрать какой из них использовать. Например есть запрос /adress?view=vm - используется view velocity, а если /adress?view=jsp то соответственно jsp. Это выдуманный пример, просто интересно как это сделать :) 2) Как правильно сделать ответ на запрос скажем в виде JSON или XML? Правильно ли для этого использовать @ResponseBody и просто отдавать строку? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2012, 22:55:21 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 11:39:27 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
rdmНапример есть запрос /adress?view=vm я так представляю, что ГУИ общается с серверной стороной посредством API вида /Procedure?ПараметрыПроцедуры и выносить смену ИМЕНИ или ТЕХНОЛОГИИ контроллёра на этот уровень - не есть хорошо. Тем более, что эти ярлыки хранятся на рабочем столе клиента - "вечно". Хотя есть для ЯП всякие RTTI \ рефлекцион которые эту вечность обходят. imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 12:11:49 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, я читал этот раздел, но не совсем понял как это выглядит в виде кода. Как я понимаю это довольно распространенная практика, иметь разные view такие как HTML, PDF, XML, JSON. Хотелось бы увидеть, как это сделано. Не уловил что надо возвращать в методе контроллера, чтобы был использовался нужный view resolver, и как работает цепочка view resolver'ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:06:25 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, т.е. сделать например public @ResponseBody String methodABC() { .... .... return JSONObject.toString() } не правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:08:50 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
Petro123, про смену технологии это слегка надуманно конечно) Я скорее имел ввиду смену представления) Скажем HTML, PDF и XML. Для этого нужны разные view resolver'ы если я правильно понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:10:42 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
rdmPetro123, про смену технологии это слегка надуманно конечно) Я скорее имел ввиду смену представления) Скажем HTML, PDF и XML. Для этого нужны разные view resolver'ы если я правильно понимаю. ну дак приведи пример URL из сети, будет проще обсуждать "надуманность". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:16:21 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
Petro123, например есть страница HTML по адресу /info, а я хочу получить ту же страницу но в виде PDF. Используется ведь та же модель, но другое представление. Скажем PDF версия доступна по адресу /info?view=pdf. Для этого в spring MVC опять же как я понимаю используется другой view resolver. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:21:43 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
rdmPetro123, например есть страница HTML по адресу /info, а я хочу получить ту же страницу но в виде PDF. Используется ведь та же модель, но другое представление. Скажем PDF версия доступна по адресу /info?view=pdf. Для этого в spring MVC опять же как я понимаю используется другой view resolver. Ну, нафига вам GET параметры? Когда на всех углах твердят про Friendly URL: /info.html /info.pdf Спринг по suffix свойству в резолвере найдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:24:21 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
rdmPDF версия ну не видел я таких примеров. Ты видел? Приведи тогда. http://www.google.ru/search?hl=ru&newwindow=1&client=firefox&rls=org.mozilla%3Aru%3Aofficial&q=filetype%3Apdf+%22PDF+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%22&oq=filetype%3Apdf+%22PDF+%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%22&aq=f&aqi=&aql=&gs_l=serp.3...7285l9284l0l9523l2l2l0l0l0l0l82l153l2l2l0.frgbld. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:24:39 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
rdmpublic @ResponseBody String methodABC() { return JSONObject.toString() } не правильно? Зачем вам в контроллере везде писать JSON сериализацию, если можно отдать это на откуп Spring конфигу. Тогда контроллер будет выглядеть так: Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:30:05 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
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 ? И как указать какой использовать? Уникальные имена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:45:10 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
rdmКакаой шаблон будет использоваться hello.jsp или hello.vm ? Тот, который клиент просит (см HttpServletRequest). Если клиент просит .jsp, то и получит jsp. Если просит vm, то и получит его. rdmИ как указать какой использовать? Уникальные имена? Зачем контроллеру указывать конкретный тип view, если view резолвер, сам найдёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:49:19 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
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 ? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:56:33 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
Petro123, действительно) Есть замечательная статья на IBM http://www.ibm.com/developerworks/ru/edu/os-ag-springframe6/section5.html , в ней рассматриваются разные виды(jsp, velocity, pdf). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 14:00:48 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
rdmBlazkowicz, эх) Мне кажется я все таки не понимаю какой-то базовой вещи) Эта базовая вещь заключается в том что контроллер сам по себе не запускается. Его запуск является следствием обработки некоторого зарпоса. Не пренебрегайте чтением исходного кода. Посмотрите UrlBasedViewResolver.buildView() И ещё DispatcherServlet полистайте. По поводу его свойства viewResolvers. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 14:10:42 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
rdmPetro123, действительно) Есть замечательная статья на IBM http://www.ibm.com/developerworks/ru/edu/os-ag-springframe6/section5.html , в ней рассматриваются разные виды(jsp, velocity, pdf). 25.05.2007 - учтите, что с тех пор много воды утекло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 14:11:50 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, потому и спрашиваю) Это была первый материал который я читал про spring mvc, после этого много чего еще читал включая документацию, но в этом вопросе понимания не достиг) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 14:20:50 |
|
||
|
Spring MVC несколько view resolver
|
|||
|---|---|---|---|
|
#18+
BlazkowiczrdmBlazkowicz, эх) Мне кажется я все таки не понимаю какой-то базовой вещи) Эта базовая вещь заключается в том что контроллер сам по себе не запускается. Его запуск является следствием обработки некоторого зарпоса. Не пренебрегайте чтением исходного кода. Посмотрите UrlBasedViewResolver.buildView() И ещё DispatcherServlet полистайте. По поводу его свойства viewResolvers. + ещё аффтару попробовать без спринг. Я понимаю ещё, в веб-сервисе можно наплевать на URL строку. Сделать а-ля override метод, где по типу переменной, на выходе разный "формат". Но в URL-HTTP свои законы. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 14:51:56 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2132196]: |
0ms |
get settings: |
12ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
55ms |
get topic data: |
21ms |
get forum data: |
5ms |
get page messages: |
88ms |
get tp. blocked users: |
3ms |
| others: | 364ms |
| total: | 584ms |

| 0 / 0 |
