手动执行ModelAttribute注释在Spring MVC中的作用

时间:2012-12-06 12:43:56

标签: spring-mvc modelattribute

我在Spring MVC控制器上有一个action方法,其参数注释为@ModelAttribute。但是,我不知道在编译时这个参数的类型是什么 - 我知道抽象基类型而不是派生类型。

在运行时,我将能够决定我期待的课程,并且我将能够获得这个课程的新实例。但是,我不知道我应该调用什么代码来解析请求数据的方式与@ModelAttribute相同。

我环顾四周,似乎如果我能抓住WebRequestDataBinder我可以用它来填充我的对象,但为此我需要一个BinderFactory这就是我所在的地方有点迷路。

任何人都可以在这里给我一些指示 - 或者告诉我,我正在以错误的方式看待它并需要做其他事情吗?

1 个答案:

答案 0 :(得分:0)

您可以在控制器方法中注入模型本身并自行访问该属性。

@RequestMapping(...)
public void doStuff(ModelMap model) {
    Object attr = model.get("nameOfAttribute");
    // ...
}