Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动态主体请求的Spring数据Rest验证_Java_Spring_Validation_Spring Data Rest_Json Ld - Fatal编程技术网

Java 动态主体请求的Spring数据Rest验证

Java 动态主体请求的Spring数据Rest验证,java,spring,validation,spring-data-rest,json-ld,Java,Spring,Validation,Spring Data Rest,Json Ld,我是Spring相关技术的新手。 我选择Spring Data Rest来实现web注释服务器,注释应该用JSON-LD表示,这意味着您不能将请求绑定到任何域对象,因为字段名是可变的。(在C#中,可以将其绑定到动态)。在持久化到db之前,您只需要将其转换为某个已定义的类型 在转换之前,我想验证请求主体。 我使用: @服务 公共类AnnotationValidator实现验证器{ @自动连线 专用处理器; @凌驾 公共布尔支持(类aClass){ 返回AnnotationDocument.clas

我是Spring相关技术的新手。 我选择Spring Data Rest来实现web注释服务器,注释应该用JSON-LD表示,这意味着您不能将请求绑定到任何域对象,因为字段名是可变的。(在C#中,可以将其绑定到动态)。在持久化到db之前,您只需要将其转换为某个已定义的类型

在转换之前,我想验证请求主体。 我使用:

@服务
公共类AnnotationValidator实现验证器{
@自动连线
专用处理器;
@凌驾
公共布尔支持(类aClass){
返回AnnotationDocument.class.equals(aClass);
}
@凌驾
公共无效验证(对象o、错误){
对象处理注释;
试一试{
processedAnnotation=ldProcessor.extractAnnotationModel(o);
}捕获(JsonLdError JsonLdError){
jsonLdError.printStackTrace();
}
}
}
在validate方法中,对象o不表示请求主体。实际上,它试图将请求主体强制转换为AnnotationDocument,因此我无法验证它

最后,我的问题是: 如何处理纯请求主体并检查其字段? 我通过创建@RepositoryRestController解决了我的问题,但我认为这应该更简单。

你能链接到解释这些注释的“标准”吗?我从未听说过它们,也不知道如何对它们进行建模。当然。如果@context不同,所有字段都会改变。这就是问题所在。你能链接到解释这些注释的“标准”吗?我从未听说过它们,也不知道如何对它们进行建模。当然。如果@context不同,所有字段都会改变。这就是问题所在。
@Service
public class AnnotationValidator implements Validator{

    @Autowired
    private Processor ldProcessor;

    @Override
    public boolean supports(Class<?> aClass) {
        return AnnotationDocument.class.equals(aClass);
    }

    @Override
    public void validate(Object o, Errors errors) {
        Object processedAnnotation;
        try {
            processedAnnotation = ldProcessor.extractAnnotationModel(o);
        } catch (JsonLdError jsonLdError) {
            jsonLdError.printStackTrace();
        }
    }
}