Spring @RequestMapping удваивается в URL при нескольких отправках - PullRequest
0 голосов
/ 21 июня 2011

Я впервые работаю с аннотациями Spring, и у меня возникают некоторые проблемы с удвоением URL при последующих попаданиях @RequestMapping. У меня есть следующий фрагмент:

@Controller @RequestMapping("/login")
public class Login {
    private LoginService loginService;

    @Autowired
    public Login(LoginService loginService){
        this.loginService = loginService;
    }

    @RequestMapping(method=RequestMethod.GET)
    public String setupLogin(){ return "login"; }

    @RequestMapping(method=RequestMethod.GET, value="/retry")
    public String setupLoginRetry(){ return "login"; }

    @RequestMapping(method=RequestMethod.POST)
    public String processLogin(@ModelAttribute("userName") String userName, @ModelAttribute("password") String password){
        if (true) return "redirect:login/retry"; //hard-coded for example
        return "redirect:home";
    }
}

Если я поднимаю страницу и просто нажимаю кнопку Отправить, я получаю следующее:

MYAPP / Логин

MYAPP / Войти / повторить? UserName = & пароль =

myApp / login / login // <- это происходит не так, как не должно быть вложения логинов </p>

Так что, очевидно, я делаю что-то не так. Мои вопросы:

1.) Что можно сделать, чтобы параметры не отображались в URL-адресе при повторной попытке? Изменить: Удаление этого вопроса - нашел ответ .

2.) Почему он начинает вкладывать логины и как правильно это объявить?

Будем благодарны за любые мысли или помощь. Спасибо!

1 Ответ

2 голосов
/ 21 июня 2011

Возможно, это связано с тем, что вы используете относительный URL-адрес в качестве атрибута action формы в представлении login.Поскольку страница, содержащая эту форму, может отображаться в ответ на другой URL-адрес, необходимо использовать абсолютные URL-адреса, например:

<spring:url var = "loginUrl" value = "/login" />
<form:form action = "${loginUrl}" ...>...</form:form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...