2013-07-31 3 views
1

Когда код достигает точки останова return, я ожидаю увидеть хотя бы некоторую добавленную стоимость в redirAttr, но переменная отладки показывает размер 0. Кто-нибудь знает, почему я ничего не вижу? Использование IntelliJIntelliJ во время отладки не показывает значения в Spring RedirectAttributes

@RequestMapping(value="/hello", method=POST) 
public String hello(final RedirectAttributes redirAttr) 
{ 
    redirAttr.addFlashAttribute("objects", listOfObjects);   

    return "redirect:/somewhere.htm"; 
} 

redirAttr имеет размер 0, когда точка разрыва достигает return

+0

, что переменная величина 0 точно? – soulcheck

+0

redirAttr имеет размер '0', когда точка останова достигает' return' –

ответ

1

Реализация по умолчанию RedirectAttributes - RedirectAttributesModelMap расширяет ModelMap, но использует его только для нормального (без вспышки) атрибутов. Вы можете добавить их с помощью методов RedirectAttributes.addAttribute(...).

Внутренне, что реализация использует дополнительные ModelMap для хранения флэш атрибуты:

private final ModelMap flashAttributes = new ModelMap(); 

Размер этой структуры следует изменить, как ожидается, при выполнении кода.

0

Чтобы увидеть размер и содержание Перенаправление атрибутов в отладчике:

redirectAttributes.getFlashAttributes() 
Смежные вопросы