Java @方法签名中带有@modeldattribute的modeldattribute注释方法
我想知道是否有可能通过在方法签名中使用另一个modeldattribute来对@modeldattribute方法进行注释(而不是请求映射)来链接@modeldattribute方法。 这将在控制器中 即 然后,如果存在执行此操作的请求映射方法:Java @方法签名中带有@modeldattribute的modeldattribute注释方法,java,spring,annotations,Java,Spring,Annotations,我想知道是否有可能通过在方法签名中使用另一个modeldattribute来对@modeldattribute方法进行注释(而不是请求映射)来链接@modeldattribute方法。 这将在控制器中 即 然后,如果存在执行此操作的请求映射方法: @RequestMapping(method=RequestMethod.GET) public String doSomething(@ModelAttribute("attrTwo") AttrTwo attrTwo ) 这样行吗 在第二个带注释
@RequestMapping(method=RequestMethod.GET)
public String doSomething(@ModelAttribute("attrTwo") AttrTwo attrTwo )
这样行吗
在第二个带注释的方法中,我似乎得到了AttrOne的null对象。。。由于第一个带注释的方法没有被第二个方法调用
干杯我从spring文档中学到了同样的情况: @ModelAttribute还用于方法级别[…]。对于这种用法,方法签名可以包含与上述@RequestMapping注释相同的类型 我发现谁面临这个问题。在注释中,您可以通过仅提供一个@modeldattribute注释方法来找到一种解决方法,该方法将属性设置到模型中:
@ModelAttribute
public void populateModel(Model model) {
model.addAttribute("attrOne", getAttrOne());
model.addAttribute("attrTwo", getAttrTwo());
}
根据,这将在Spring4.1RC1或更高版本中实现。对于getAttrTwo(),为什么需要传递attrOne?您不能只进行相同的服务调用,或者可能缓存服务调用的结果吗?更多说明:我希望在一个超类控制器中同时使用这两个方法,但会覆盖扩展控制器中的第一个方法。。。。
@ModelAttribute
public void populateModel(Model model) {
model.addAttribute("attrOne", getAttrOne());
model.addAttribute("attrTwo", getAttrTwo());
}