@ModelAttribute(" classname")动态参数绑定

时间:2014-09-05 09:51:00

标签: spring-mvc servlets modelattribute

spring mvc 

 @ModelAttribute("classname"), 

如何制作参数" classname "一个dynamic一个?

无论来自哪个视图都可以附加在那里。

1 个答案:

答案 0 :(得分:1)

命令对象的实例化是Spring需要知道command类的唯一地方。但是,您可以使用 @ModelAttribute 带注释的方法覆盖它:

@RequestMapping(method = RequestMethod.POST) 
public void show(HttpServletRequest request, 
    @ModelAttribute("objectToShow") Object objectToShow) 
{
    ...
}

@ModelAttribute("objectToShow")
public Object createCommandObject() {
    return getCommandClass().newInstance();
}

顺便说一句,Spring也适用于真正的generics

public abstract class GenericController<T> {
    @RequestMapping("/edit")  
    public ModelAndView edit(@ModelAttribute("t") T t) { ... }
}

@Controller @RequestMapping("/foo")
public class FooController extends GenericController<Foo> { ... }