我對JSR交叉提交驗證有疑問。 我有一個基於休息的服務獲取和發佈。所以,我有類似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()中驗證有什麼意義?在這種情況下,當前或遠程系統可以做些什麼? – WeaponsGrade