模型注释方法应该如何交互?

时间:2011-06-27 21:35:27

标签: spring spring-mvc model controller annotations

我想知道控制器方法应该如何与ModelAttribute带注释的方法进行交互。

例如,handlePage方法想要过滤由createList方法创建的列表? 或者设置由createAnObject方法创建的对象的ID?

是否有可能将ModelAttribute注释方法设计为将静态数据附加到模型中?

@ModelAttribute("someList")
  public ArrayList<SomeList> createList() {
    return new ArrayList<SomeList>(100);
  }
@ModelAttribute("anObject")
  public AnObject createAnObject() {
    return new MyObject();
  }

  @RequestMapping(method=RequestMethod.GET)
  public void handlePage(Model model) {
    //Do some stuff to populate the model....
  }

1 个答案:

答案 0 :(得分:1)

两者不应该真正互动。在此上下文中,@ModelAttribute旨在暴露参考数据,即不依赖于请求细节的数据。

如果您的处理程序方法需要修改该数据,则@ModelAttribute不合适。相反,处理程序方法应该在修改后将数据显式添加到模型中。