方法调用上的Java Spring @Valid

时间:2016-05-13 18:38:44

标签: java spring validation

我有一个@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永远不会被触发。我做错了什么,或者甚至可以这样做?

0 个答案:

没有答案