Spring mvc 使用@modeldattribute将自定义数据类型从URL映射到Spring MVC控制器

Spring mvc 使用@modeldattribute将自定义数据类型从URL映射到Spring MVC控制器,spring-mvc,data-binding,modelattribute,Spring Mvc,Data Binding,Modelattribute,我正在尝试将参数从UI发送到SpringMVC控制器。我的参数看起来像 caseId=23951910&serviceProvided%5B0%5D.id=25989&serviceProvided%5B0%5D.desc=24-Hour+Service&serviceProvided%5B0%5D.duration=1&serviceProvided%5B0%5D.pages=--&serviceProvided%5B1%5D.id=25988&

我正在尝试将参数从UI发送到SpringMVC控制器。我的参数看起来像

caseId=23951910&serviceProvided%5B0%5D.id=25989&serviceProvided%5B0%5D.desc=24-Hour+Service&serviceProvided%5B0%5D.duration=1&serviceProvided%5B0%5D.pages=--&serviceProvided%5B1%5D.id=25988&serviceProvided%5B1%5D.desc=3rd+Party+Contact&serviceProvided%5B1%5D.duration=2&serviceProvided%5B1%5D.pages=--&serviceProvided%5B2%5D.id=25980&serviceProvided%5B2%5D.desc=Advice&serviceProvided%5B2%5D.duration=3&serviceProvided%5B2%5D.pages=--&serviceProvided%5B3%5D.id=25982&serviceProvided%5B3%5D.desc=Document+Preparation&serviceProvided%5B3%5D.duration=4&serviceProvided%5B3%5D.pages=--&serviceProvided%5B4%5D.id=DOCREVIEW&serviceProvided%5B4%5D.desc=Document+Review&serviceProvided%5B4%5D.duration=5&serviceProvided%5B4%5D.pages=6
为了匹配此参数,我使用自定义类作为

 Class MyDto {
   private Long caseId;
   private List<ServiceProvided> serviceProvided;
   //getter and setter
 }

  Class ServiceProvided {
    private String id;
    private String desc;
    private Long duration;
    private Long pages;
    //getter and setter
  }
我收到了404错误,因此我猜测“
提供的服务
”列表与
myDto
不匹配。因此,我的问题是:

  • 这真的是我得到404错误的原因吗

  • 如果是的话,我想我必须解决这个问题?我说得对吗

  • 有没有我可以参考的示例代码


  • 感谢您,数据是如何发布的,它也不是json类型。1。不。如果DTO没有绑定,你不会得到404错误,你可能发布到错误的URL,或者你没有发出POST请求。2.您不需要使用任何额外的东西来绑定此DTO,从对参数的偶然检查来看,它们对我来说似乎没有问题,当1)被解析时,您的帖子应该正确绑定。@ankur singhal我不明白您在问什么。@Kresimir Nesek URL是正确的,请求是POST。如果我从请求中删除ServiceProvidered部分,则可以正常工作
    使用我们的服务部件,我的URL已解决!!!我收到404错误,因为我为这个AJAX调用返回了错误的视图。另外@modeldattribute足以将我的UI字段绑定到bean。
    @RequestMapping(value = "/cases/resolveClaim.htm", method = RequestMethod.POST)
    public ModelAndView createClaim(@ModelAttribute("claimInfo") MyDto myDto, BindingResult result) { ... }