Spring mvc 使用@modeldattribute将自定义数据类型从URL映射到Spring MVC控制器
我正在尝试将参数从UI发送到SpringMVC控制器。我的参数看起来像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&
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
不匹配。因此,我的问题是:
感谢您,数据是如何发布的,它也不是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) { ... }