-
Notifications
You must be signed in to change notification settings - Fork 66
Open
Description
From Eric Meltzer:
When using method POST, org.skyscreamer.yoga.springmvc.view.YogaSpringView renders org.springframework.validation.BindingResult instead of object returned from controller.
It looks like the order of the objects in the Model are different for POST.
// I’m doing something like this
@RequestMapping(value = "/test", method = RequestMethod.POST)
public List test() {
return domainObjectDao.findAll();
}
original render method
@Override
public void render( Map<String, ?> model, HttpServletRequest request, HttpServletResponse response )
throws Exception
{
response.setContentType( getContentType() );
yogaView.render( request, response, model.isEmpty() ? null : model.values().iterator().next(), response.getOutputStream() );
}
updated render method
@Override
public void render( Map<String, ?> model, HttpServletRequest request, HttpServletResponse response )
throws Exception
{
response.setContentType( getContentType() );
Object value=null;
if(!model.isEmpty()){
Iterator valueIterator = model.values().iterator();
while(valueIterator.hasNext()){
value = valueIterator.next();
// when posting the BindingResult comes first
if( !(value instanceof org.springframework.validation.BindingResult) ){
yogaView.render( request, response, value , response.getOutputStream() );
return;
}
}
}
yogaView.render( request, response, null , response.getOutputStream() );
}
Metadata
Metadata
Assignees
Labels
No labels