Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Мэппинг Spring по имени страницы / 12 сообщений из 12, страница 1 из 1
14.12.2012, 15:00:30
    #38079529
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Подскажите пожалуйста.
Классически страница мэппится в Spring mvc таким образом:


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
Controller
{
    @RequestMapping(value = {"/login"}, method = RequestMethod.GET)
   public String enter()
   {
       ....
       return loginPage; 
   }
}


в конфиге
Код: xml
1.
2.
3.
4.
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/"/>
        <beans:property name="suffix" value=".jspx"/>
    </beans:bean>



И при вызове http://host/application/login откроется страница /WEB-INF/views/loginPage.jspx.

А как сделать, чтобы например в папке pages лежали страницы, и мэппинг был бы сделан на эту папку так, чтобы не надо было делать return loginPage.
То есть например мэппинг общий для папки pages - http://host/application/pages,
а при вызове http://host/application/pages/page1 будет открываться pages/page1.jspx,
для http://host/application/pages/page2 - pages/page2.jspx и тд - без дополнительного Java кода.
...
Рейтинг: 0 / 0
14.12.2012, 15:04:37
    #38079538
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Что то вроде:
Код: java
1.
2.
@RequestMapping(value = "/pages/{page}")
public ModelAndView cityUpdProcess(@PathVariable String page) {}


?
...
Рейтинг: 0 / 0
14.12.2012, 15:17:30
    #38079560
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Ну, RTFM же.
http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html
17.5 Resolving views
там все варианты перечислены.
Если возвращать не String и не ModelAndView, а просто Model (Map или объект), то view resolver по реквесту и найдёт view.
Если вернуть ModelAndView, то посмотрит имя View там.
Если вернуть String, то он станет именем view.
...
Рейтинг: 0 / 0
17.12.2012, 11:27:51
    #38081607
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Спасибо.
...
Рейтинг: 0 / 0
17.12.2012, 11:36:17
    #38081617
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Что-то я не совсем понял.
Я имел ввиду, если я не хочу на открытие каждой страницы писать метод.
То есть чтобы у меня например был один метод для открытия 30 страниц в папке /pages/
по их имени. И достаточно в эту папку скопировать страницу mypage1.jspx и в браузере вызвать
http://host/app/pages/mypage1
...
Рейтинг: 0 / 0
17.12.2012, 11:42:55
    #38081629
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
osonЧто-то я не совсем понял.
Я имел ввиду, если я не хочу на открытие каждой страницы писать метод.
То есть чтобы у меня например был один метод для открытия 30 страниц в папке /pages/
по их имени. И достаточно в эту папку скопировать страницу mypage1.jspx и в браузере вызвать
http://host/app/pages/mypage1
Тоесть у тебя куча статических страниц, которым даже логика не нужна? Или как? Зачем они тогда вообще через Spring проходят?
И всё равно я непонял. Если возвращать только данные, то View как раз и резолвится по запросу. Можно одним методом обойтись.
...
Рейтинг: 0 / 0
17.12.2012, 18:40:00
    #38082443
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Это надо чтобы видеть просто структуру страницы - безо всякой логики. Типа показать заготовку.
...
Рейтинг: 0 / 0
17.12.2012, 18:46:37
    #38082456
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Чтобы html верстальщик мог туда кинуть страницу и открыть каким то предопределеным путем, исходя из названия страницы, не делая никакого кодирования в контроллерах.
...
Рейтинг: 0 / 0
17.12.2012, 18:54:12
    #38082467
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
oson,

/war/[папка]/[имя фала].html
...
Рейтинг: 0 / 0
17.12.2012, 19:08:51
    #38082490
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Не совсем. Это jspx страница. просто с ней никакие бины не связаны. Но тэги должны обрабатываться соответствующим обработчиком.
...
Рейтинг: 0 / 0
18.12.2012, 22:53:52
    #38084287
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
Решение простое.
Кладем страницу в папку webapp/WEB-INF/folder1 например.
В spring confige файле имеем мэппинг к примеру

Код: xml
1.
2.
3.
4.
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/" />
        <property name="suffix" value=".jspx" />
    </bean>



В MyController пишем

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@Controller
@RequestMapping(value = "/mypages")
public class MyController 
{
    @RequestMapping(value="/{page}", method = RequestMethod.GET)
    public String  justOpenPage(@PathVariable String page)
    {
        return "folder1/" + page + ".jspx";
    }
}



Теперь кидаем файл mypage1.jspx в папку webapp/WEB-INF/folder1 и открываем

htp://localhost/application/mypages/mypage1
...
Рейтинг: 0 / 0
18.12.2012, 23:45:12
    #38084322
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мэппинг Spring по имени страницы
osonРешение простое.
...

ужас!

/war/[папка]/[имя фала].jspx
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Мэппинг Spring по имени страницы / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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