@@ Attribute属性被URL值覆盖

问题描述 投票:0回答:1

我具有以下方法签名的控制器

@PostMapping
public String doUpdate(
        @PathVariable("fooId") Long ID,
        @ModelAttribute Item form,
        Model model) 

控制器的@RequestMapping为>

@RequestMapping("/foo/{fooId}/Items/{itemId}/type/{type}/update")

我正在尝试通过@ModelAttribute ItemmockMvcflashAttr()传递给控制器​​,如下所示

 String url = String.format("/foo/%s/Items/%s/type/%s/update", fooId, itemId, type);

 mockMvc.perform(post(url)).flashAttr("form", updateContact))

不是用form中的数据填充flashAttr,而是用fooIditemIdtype填充

  1. 为什么会发生这种情况。2.有什么解决方法吗?

我有一个控制器,以下方法签名@PostMapping公共字符串doUpdate(@PathVariable(“ fooId”)长ID,@ModelAttribute项目形式,模型模型)@ ...

spring spring-boot spring-mvc mockmvc
1个回答
0
投票

控制器签名中的@ModelAttibute缺少name属性,因此控制器自动从URL中提取参数并将其提取到@ModelAttibute

© www.soinside.com 2019 - 2024. All rights reserved.