Помещение значений в error.getModel в onBindAndValidate - PullRequest
1 голос
/ 14 мая 2009

Я хочу добавить некоторые данные в модель, если не было ошибок валидации. Я думал, что мог бы сделать это в onBindAndValidate, где у меня есть доступ к объекту ошибки, который содержит модель:

errors.getModel().putAll(map);

Я также пытался поместить значения одно за другим, используя put(key, value), но безуспешно.

Что я могу сделать?

Ответы [ 2 ]

1 голос
/ 25 ноября 2009

Вы не можете напрямую добавлять данные в модель BindException. Причина, по которой вы не можете это сделать:

errors.getModel().putAll(map);

потому что errors.getModel () создает и возвращает новую карту каждый раз, когда вы вызываете ее. Итак, в вашем примере onBindAndValidate вы получаете новую модель из объекта BindException, добавляете свои данные в модель, а затем выбрасываете ее. Во втором примере вы добавляете данные в модель, а затем возвращаете их.

Другое распространенное использование при использовании модели BindException из методов контроллера будет выглядеть так:

Map errorModel = errors.getModel();
errorModel.putAll(otherMap);
return new ModelAndView("viewName", errorModel );

См. Также: BindException # getModel ()

0 голосов
/ 14 мая 2009

Я могу сделать это после проверки в processFinish:

return showPage(request, errors, getCurrentPage(request))
       .addAllObjects(map);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...