【发布时间】:2011-03-28 20:04:32
【问题描述】:
我想知道是否可以通过在方法签名中使用另一个 ModelAttribute 方法签名中的 @ModelAttribute 注释但不映射请求来链接 @ModelAttribute 方法。 这将在控制器中。
即
@ModelAttribute("attrOne")
public AttrOne getAttrOne() {
return service.getAttOne();
}
@ModelAttribute("attrTwo")
public AttrTwo getAttrTwo(@ModelAttribute("attrOne") AttrOne attrOne){
return anotherservice.getAttrTwo(attrOne);
}
如果有一个请求映射的方法可以做到这一点:
@RequestMapping(method=RequestMethod.GET)
public String doSomething(@ModelAttribute("attrTwo") AttrTwo attrTwo )
这行得通吗?
我似乎在第二个带注释的方法中为 AttrOne 获得了一个空对象...因为第一个带注释的方法没有被第二个方法调用...
干杯
【问题讨论】:
-
对于 getAttrTwo() 为什么需要通过 attrOne?您不能只进行相同的服务调用或缓存服务调用的结果吗?
-
更多解释:我希望将这两个都放在一个超类控制器中,但在扩展控制器时覆盖第一个方法....
标签: java spring annotations