我有一个@RestController
,它接收部分已发布的数据,并在某些不同的@Controller
中调用另一个方法,我无法在被调用的方法中@Validate特定的传递参数。
正在发布的数据将始终具有一个对于每种类型都相同的部分,以及特定于要发布的每种类型的部分。
public class BasicConfig {
private Integer id;
private String title;
private String type;
}
public class Type1Config extends BasicConfig {
@NotNull
private String value;
}
@RestController:
@RequestMapping(value = "/update", method = RequestMethod.PUT)
public void update(@RequestBody byte[] data) throws JsonParseException, JsonMappingException, IOException {
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
BasicConfig bc = objectMapper.readValue(data, BasicConfig.class);
switch (bc.getType()) {
case "TYPE1":
type1Controller.update(objectMapper.readValue(data, Type1Config.class));
break;
}
return null;
}
@Controller:
@Controller
public class Type1Controller {
public void update(@Valid Type1Config data) {
return null;
}
}
因此,update
中的Type1Controller
方法已被调用,但@Valid
永远不会被触发。我做错了什么,或者甚至可以这样做?