簡體   English   中英

Spring REST @RequestBody驗證以特定順序進行,並且只有組必填字段之一

[英]Spring REST @RequestBody validation in specific order and only one of group mandatory fields

可以說,我下面是使用@RequestBody進入Controller的入口方法的bean

public class MyRequestBean extends RequestBean {

    private static final long serialVersionUID = 1L;

    private String lastName ;
    private String firstName ;
    private String ssnNumber;
    private String groupCd;

}

我已經將@Valid放在-@ @RequestBody旁邊的入口點方法中。

我正在努力實現兩件事,

  1. ssnNumber是絕對必填字段-如果其為空或為ssnNumber則無需驗證其他任何內容。 只需返回錯誤消息。

  2. 如果ssnNumber是有效的,看看是否有任何三個字段- firstNamelastNamegroupCd與有效@NotNull@NotEmpty 如果存在任何字段,請處理該請求。

我該如何實現?

我將這兩個依賴項用於驗證目的,

<dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
</dependency>

驗證API為-1.1.0.Final和Hibernate驗證程序為-5.3.4.Final

編輯:可能重復的鏈接正在談論JSON字段順序。 就我而言,現場訂單並不重要。 其關於現場驗證順序。 我想念什么嗎?

我沒有找到一種使用注釋的方法,即使用注釋對字段進行驗證。

我最終寫我自定義的驗證講座MyValidator通過實施- org.springframework.validation.Validator ,寫我的有序邏輯那里,然后補充說,驗證該控制器在控制器類,

@InitBinder
    public void globalInitBinder(WebDataBinder binder) {
        binder.addValidators(new MyValidator());
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM