【问题标题】:How model annotated methods should interact?模型注释方法应该如何交互?
【发布时间】:2011-09-23 20:40:30
【问题描述】:

我想知道控制器方法应该如何与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....
  }

【问题讨论】:

    标签: spring spring-mvc model controller annotations


    【解决方案1】:

    两者不应该真正互动。 @ModelAttribute,在这种情况下,旨在公开参考数据,即不依赖于请求细节的数据。

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

    【讨论】:

    • 谢谢 Skaff,抱歉我的无知,如何将我的数据添加到带注释控制器的模型中?
    • @user648026:使用Model.add?
    • 好的,我需要更改方法签名以容纳Model对象作为第一个参数,所以spring会在调用方法时设置模型(然后当然使用model.add)谢谢!
    猜你喜欢
    • 2010-12-13
    • 2015-09-18
    • 2021-02-02
    • 2023-04-06
    • 2011-05-26
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多