gpt4 book ai didi

java - JSR 跨域验证

转载 作者:行者123 更新时间:2023-11-29 08:58:28 26 4
gpt4 key购买 nike

我有一个关于 JSR 交叉文件验证的问题。我有一个基于休息的获取和发布服务。所以我有类似的东西

@GET
ItemOfferId getItem(String)

另外一个是

@Post
boolean setItem(ItemOfferId)

在 ItemOfferId 类中,我有一个名为 @validoffer 的类级注释。所以我喜欢这门课

@validOffer
Class ItemOfferId{
OfferId offer;
ItemId item;
}


@Target({ ElementType.TYPE })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = { OfferValidator.class })
public @interface ValidOffer {

String message() default "";
Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};
}

public class Validator implements ConstraintValidator<ValidOffer,ItemOfferId>{
//i get here ItemOfferId object and do my custom validation
}

现在我的问题是,有一些特定于“get”服务的约束,有些特定于“Set”服务。get 和 set 方法中使用相同的对象。有什么方法可以告诉注释它已打开获取验证。所以基本上我想根据运行时方法调用传递一些参数..?

有可能吗?我在互联网上搜索了很多但找不到答案......如果我能找到解决这个问题的方法,那就太好了。

谢谢,斯瓦特语

最佳答案

您是否考虑过使用带有值的自定义 JSR 303 约束。然后 validator 使用该值来确定应如何对其进行验证。

因此,在您的情况下,您将在发布时对 validator 使用不同的值,或者获取验证以告诉它在哪种模式下进行验证。

这里有一个示例可以准确显示您需要做什么see 3.1 Creating a simple constraint

关于java - JSR 跨域验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com