2016-04-29 2 views
1

Я нахожу некоторые трудности с этим конкретным случаем переменной пути использовать в Spring MVC.Почему у меня такое неправильное поведение, передавая адрес электронной почты как значение переменной пути Spring MVC?

Так я открыть URL, как это:

localhost:8080/my-project/utenze/my.username/confermaEmail/[email protected] 

В моем классе контроллера у меня есть этот метод контроллера, который обрабатывать URL, как это:

@RequestMapping(value = "utenze/{username}/confermaEmail/{email}", method = RequestMethod.GET) 
    public String confermaModificaEmail(@RequestHeader(value = HEADER_USER_CG) String codicefiscale, 
             @PathVariable String username, @PathVariable String email, Model model) { 

     logger.info("INTO confermaModificaEmail(), indirizzo e-mail: " + email); 

     ................................................................... 
     ................................................................... 
     ................................................................... 

     return "myView"; 
} 

предыдущий запрос обработан правильно, но у меня есть следующая проблема с сообщением переменной пути :.

Проблема заключается в том, что электронной путь значение переменной не [email protected], как я ожидал, но это [email protected].

Весна автоматически удаляет последние .com раздел вставленного значения.

Почему? В чем проблема? Что мне не хватает? Как я могу попытаться решить эту проблему?

+0

быстрый способ решить эту проблему, является: сделайте метод (например, emailFixer) и проверьте электронную почту (параметр метода) с наличием .com в конце сообщения электронной почты, и если его там нет, добавьте его и верните. –

+0

См. Http://stackoverflow.com/a/34164388/2696260 –

ответ

2

В вашем случае я бы удалить {email} из переменной пути и запросить его с помощью параметра запроса:

@RequestMapping(value = "utenze/{username}/confermaEmail", method = RequestMethod.GET) 
public String confermaModificaEmail(@RequestHeader(value = HEADER_USER_CG) String codicefiscale, 
            @PathVariable String username, @RequestParam(value="email", required=true) String email, Model model) { 

    logger.info("INTO confermaModificaEmail(), indirizzo e-mail: " + email); 

    ................................................................... 
    ................................................................... 
    ................................................................... 

    return "myView";} 

попробовать на это =)

+0

Это не решение для меня, потому что я должен использовать этот URL-адрес, который не использует параметр для значения по электронной почте – AndreaNobili

+0

Он также не будет использоваться для 'username', потому что имя пользователя также содержит точку. –

+0

Этот метод рекомендуется вместо того, чтобы отправлять его как переменную пути. –

Смежные вопросы