Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Spring MVC 3] Необязательный параметр URL 
:(
    Опции темы
Romper
Дата 10.5.2013, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 7.11.2012

Репутация: нет
Всего: 1



Код

@Controller
@RequestMapping("/page{number}")
public class IndexController { 
    @RequestMapping(method = RequestMethod.GET)
    public String printIndex(ModelMap model, @PathVariable int number) {
        String numberText;
 
        switch (number) {
            case 0:
                numberText = "Zero";
                break;
            case 1:
                numberText = "One";
                break;
            default:
                numberText = "Unknown";
                break;
        }
 
        model.addAttribute("number", numberText);
 
        return "page";
    }
}

Пытаюсь сделать паттерн для таких ссылок: page1.html, page2.html, ..., но есть одно исключение: page.html, показывает тот же результат что и page1.html

пока только так
Код

@Controller
public class IndexController { 
    @RequestMapping("/page{number}")
    public String printIndex(ModelMap model, @PathVariable("number") int number) {
        String numberText;
 
        switch (number) {
            case 0:
                numberText = "Zero";
                break;
            case 1:
                numberText = "One";
                break;
            default:
                numberText = "Unknown";
                break;
        }
 
        model.addAttribute("number", numberText);
 
        return "page";
    }
 
    @RequestMapping("/page")
    public String printIndex(ModelMap model) {
        return printIndex(model, 1);
    }    
}


может в Spring есть другой способ ?
PM MAIL   Вверх
Farmazon
Дата 20.5.2013, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 7.7.2006

Репутация: 3
Всего: 5



по-моему опциональными переменные пути быть не могут

Добавлено через 4 минуты и 28 секунд
вариант есть ещё самому из реквеста извлекать переменные пути а в маппинг регекс загнать... но лучше пусть так останется


--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
Samotnik
Дата 21.5.2013, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Romper, Нельзя @PathVariable сделать опциональным, можно @RequestParam но в данной задаче тебе это не подойдет. 
Поэтому выхода два:
1. Сделать два маппера:
Код

    @RequestMapping(value = "page{number}", method = RequestMethod.GET)
    public String printIndex(@PathVariable("number") Integer number) {
        return processPrint(number);
    }

    @RequestMapping(value = "page", method = RequestMethod.GET)
    public String printWithoutIndex() {
        return processPrint(null);
    }

    private String processPrint(Integer number) {
        //тут обрабатывай все ситуации как хочешь, учитывая, что  для page.html параметр будет null
    }

2. Выдергивать из реквеста "в живую"  этот переметр и работать как с обычным String.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.