В ожидании интеграции FlashScope в Spring 3.1 (в любом случае это запланировано на этот выпуск), я наткнулся на это сообщение об ошибке , которое позволило мне включить бесплатную версию того, что должно быть доступно один раз 3.1
Моя проблема в том, что я не могу привязать значения, которые есть во Flash Scope.Так, например, в моей модели у меня есть следующий код:
ModelAndView mav = new ModelAndView(someInjectedRedirectPage);
//Processing
mav.addObject("flashScope.someVar", someObject);
В моем пользовательском интерфейсе, используя Velocity, я пытаюсь привязаться к этому объекту следующим образом:
##This is a velocimacro for those not familiar with velocity.
##It is basically like setting a path on a field utilizing the
##spring tag lib (e.x. <form:text path="flashScope")
#springBind("flashScope")
Однако, когда я пытаюсь использовать эту привязку, я получаю следующее исключение:
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'flashScope' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
at org.springframework.web.servlet.support.RequestContext.getBindStatus(RequestContext.java:720)bean name 'flashScope' available as request attribute...
Однако В моих журналах я могу четко указать, что она была добавлена в запрос.Я также могу сделать следующее:
$flashScope.someVar.someProperty #The value prints fine this way.
Есть ли в любом случае привязка к значению Map (которое находится не в объекте команды поддержки, а скорее только по запросу)?
Обратите внимание, если выполните следующее:
Map<String, String> map = new HashMap <String, String>();
map.put("key", "value");
mav.addObject("map", map);
Я все еще не могу привязать к карте ...
Можно ли изменить это поведение, расширив WebBindingInitializer?Устранит ли проблема простую упаковку FlashScopeMap в другой объект?