Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @方法签名中带有@modeldattribute的modeldattribute注释方法_Java_Spring_Annotations - Fatal编程技术网

Java @方法签名中带有@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 ) 这样行吗 在第二个带注释

我想知道是否有可能通过在方法签名中使用另一个modeldattribute来对@modeldattribute方法进行注释(而不是请求映射)来链接@modeldattribute方法。 这将在控制器中

然后,如果存在执行此操作的请求映射方法:

@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());
}