postman测试接口,参数List<Entity>出现错误

Entity:

@Document
public class InvestmentRequirement {
	@Id
	private String id;
	private List<Industry> industries;
	

controller:

public ResponseEntity<InvestmentRequirement> save(
			@ModelAttribute @Valid InvestmentRequirement investmentRequirement,
			@RequestParam String industries)
	                throws Exception {

service:

List<Industry> industry = objectMapper.readValue(industries, new TypeReference<List<Industry>>() {
		});


postman:

industries字段给值

[{
"industry":"adssadf",
"category1":"asads",
"category2":"112345",
"category3":"test"
},
{
"industry":"adssadf",
"category1":"asads",
"category2":"112345",
"category3":"test"
}
]

原因:

由于@ModelAttribute @Valid InvestmentRequirement investmentRequirement会自动生成一个实体,就要给实体里边的属性赋值,所以就会出现类型转换异常。

本来应该是要在servece里边进行类型转换的,但是由于有@ModelAttribute注解,所以就会在请求时出现异常

解决方法:

将controller中的industries改个名字,使得在创建investmentRequirement时,industries字段为空,然后再由@RequestParam String industriesStr取值。service中处理

List<Industry> industry = objectMapper.readValue(industriesStr, new TypeReference<List<Industry>>() {
		});
并赋值。

猜你喜欢

转载自blog.csdn.net/u012803274/article/details/80092171
今日推荐