Есть ли способ остановить Spring от добавления в справочные данные из методов, помеченных @ModelAttribute в URL на перенаправлениях? - PullRequest
3 голосов
/ 11 января 2011

В настоящее время я использую аннотацию @ModelAttribute в моих контроллерах для добавления справочных данных на мои страницы и формы, например:

@ModelAttribute("someValue")
public String getSomeValue() {
   return someValue;
}

Это прекрасно работает, пока я не начну использовать перенаправления с контроллеров.Все значения из методов, помеченных @ModelAttribute, отображаются в URL-адресе, а именно:

http://somedomain.com/page?someValue=value

Есть ли параметр, чтобы отключить это?Или есть простое исправление для этого?

Я читал кое-что о создании перехватчика для добавления справочных данных в модель, но это просто кажется неправильным:

http://developingdeveloper.wordpress.com/2008/02/28/common-reference-data-in-spring-mvc/

Ответы [ 2 ]

3 голосов
/ 11 января 2011

Я обнаружил, что в объекте RedirectView есть установщик setExposeModelAttributes.Если вы установите значение false, атрибуты не будут добавлены в URL.

Я получил некоторую помощь от PUK_999 на весенних форумах:

http://forum.springsource.org/showpost.php?p=274948&postcount=6

0 голосов
/ 11 января 2011

Это намеренное и специфическое поведение @ModelAttribute, даже если оно кажется неправильным и сломанным.

Перехватчик - действительно один из самых простых способов сделать это.

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