Почему Spring Web / MVC не добавляет атрибуты моей модели в URL моего вида перенаправления? - PullRequest
1 голос
/ 08 августа 2011

Выполнение перенаправления на GET после POST. Spring Web должен добавить атрибут модели «clientId» ниже на мой URL, но это не так ...

@Override
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception {
    ClientID clientId = ((MyCommand) command).getClientId();
    return new ModelAndView(new RedirectView(getSuccessView()), "clientId", clientId);
}

Та же проблема возникает, если я просто передаю getSuccessView() в ModelAndView и ставлю redirect:<success_view_url> в качестве успешного отображения в моей конфигурации.

1 Ответ

1 голос
/ 08 августа 2011

Проблема в том, что по умолчанию RedirectView коммутирует только то, что называется «Простые типы значений», в URL.cf RedirectView.isEligibleValue().

Решение состоит в том, чтобы добавить ClientId к модели как String, а не как пользовательский тип:

@Override
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception {
    ClientID clientId = ((MyCommand) command).getClientId();
    return new ModelAndView(new RedirectView(getSuccessView()), "clientId", clientId.toString());
}

Примечание .toString() в последней строке.

Вы можете переопределить isEligibleValue() (в своем собственном RedirectView подклассе), если вы действительно этого хотите, но проще просто записать все, что вы положили туда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...