springmvc中在ModelAndViewContainer类Set<String> bindingDisabled 的属性含义
时间: 2023-12-06 10:45:07 浏览: 32
在 Spring MVC 中,`ModelAndViewContainer` 类是用于保存控制器方法返回的模型和视图的。其中,`bindingDisabled` 属性是一个 `Set` 类型的集合,用于存储禁用数据绑定的模型属性名。
当控制器方法返回 `ModelAndView` 对象时,Spring MVC 会将其中的模型属性通过数据绑定填充到视图中,以便视图可以使用这些数据。但是,有时候我们需要禁用部分模型属性的数据绑定,例如某些属性包含敏感信息或不需要在视图中展示等情况。这时候,我们可以在控制器方法中设置 `bindingDisabled` 属性,将禁用的模型属性名添加到集合中,以达到禁用数据绑定的目的。
例如,下面的代码片段演示了如何在控制器方法中禁用某些模型属性的数据绑定:
```
@RequestMapping("/user")
public ModelAndView getUser(@RequestParam("id") long userId) {
User user = userService.getUser(userId);
ModelAndView mav = new ModelAndView("user");
mav.addObject("user", user);
// 将 "password" 和 "creditCardNumber" 添加到禁用集合中
mav.getModelAndViewContainer().setBindingDisabled(Sets.newHashSet("password", "creditCardNumber"));
return mav;
}
```
在这个例子中,我们通过 `setBindingDisabled` 方法将 `password` 和 `creditCardNumber` 两个模型属性添加到禁用集合中,从而禁用了它们的数据绑定。这样,即使视图中使用了这两个属性,它们也不会被填充到视图中。