gpt4 book ai didi

java - @ModelAttribute 注释方法在方法签名中带有@ModelAttribute

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:17 31 4
gpt4 key购买 nike

我想知道是否可以通过在方法签名中使用另一个 ModelAttribute 注释但不请求映射的方法来链接 @ModelAttribute 方法。这将在 Controller 中。

@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 获得了一个空对象...因为第一个带注释的方法没有被第二个方法调用...

干杯

最佳答案

我通过学习 spring 文档遇到了同样的情况:

@ModelAttribute is also used at the method level [..]. For this usage the method signature can contain the same types as documented above for the @RequestMapping annotation.

我找到了 SPR-6299面临这个问题。在评论中,您可以通过提供仅一个 @ModelAttribute 注释方法来找到解决方法,该方法将属性设置到模型中:

@ModelAttribute
public void populateModel(Model model) {
model.addAttribute("attrOne", getAttrOne());
model.addAttribute("attrTwo", getAttrTwo());
}

关于java - @ModelAttribute 注释方法在方法签名中带有@ModelAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464456/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com