如果没有任何验证错误,我想添加一些数据进行建模。我以为可以在onBindAndValidate中执行此操作,在该处我可以访问包含模型的错误对象:
errors.getModel().putAll(map);
我还尝试使用
put(key, value)
逐一放置值,但没有成功。我能做什么?
最佳答案
您不能直接将数据添加到BindException的模型中。您无法执行此操作的原因:
errors.getModel().putAll(map);
这是因为errors.getModel()每次调用都会创建并返回新地图。因此,在您的onBindAndValidate示例中,您将从BindException对象获取一个新模型,将数据添加到该模型中,然后将其丢弃。在第二个示例中,您将数据添加到模型中,然后返回它。
通过控制器方法使用BindException模型时,其他常见用法如下所示:
Map errorModel = errors.getModel();
errorModel.putAll(otherMap);
return new ModelAndView("viewName", errorModel );
另请参阅:BindException#getModel()
关于java - 将值放入onBindAndValidate中的error.getModel中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/862728/