我正在使用Spring3 MVC。在我的控制器中,我有很多方法,如创建,编辑和搜索。
在视图中的表单中,我需要一个包含db的一些值的列表。所以我添加了以下方法
```
@ModelAttribute("types")
public Collection<BooleanValue> populateTypes() {
return typeRepository.findAll();
}
```
然后,每个请求都将首先调用此方法,并将'types'对象放入我的模型对象中。但是对于某些请求,比如searh或listAll。我不想这个方法被调用。如何过滤对其上包含@ModelAttribute(“types”)的方法的某些请求?
```
@RequestMapping(value = "/search", method = RequestMethod.GET)
public String search(Model model) {
List<User> result = userService.findAll();
model.add("result");
return "index";
}
```
我首先不希望search
请求来电populateTypes
,因为我的populateTypes
视图中不需要search
。
答案 0 :(得分:4)
如果所有视图都不需要populateTypes
参考数据,则最好删除带注释的populateTypes()
方法,只需在需要时添加数据 - 将其添加到{{1需要它的特定ModelAndView
方法。
因此,如果您有一个名为@RequestMapping
的{{1}}方法,其视图确实需要数据,那么您可以执行以下操作:
@RequestMapping
答案 1 :(得分:-1)
如果您没有返回视图,则应使用@ResponseBody