• 
    

      <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
      1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>

        @Validated怎么驗證List集合

        小編這次要給大家分享的是@Validated怎么驗證List集合,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

        創(chuàng)新互聯(lián)自2013年起,先為玉田等服務(wù)建站,玉田等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為玉田企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

        在開發(fā)時發(fā)現(xiàn),@Validated只能驗證單個實體類,在驗證List集合時則不生效

        @PostMapping(value="/test")
        public ApiResult getRepaymentPlan(@RequestBody @Validated List<Test> repaymentPlanVOs){
         
        }

        經(jīng)過查資料得知,@valid是可以使用的,我們自定義一個ValidList類來替換List就可以達(dá)到驗證的目的,話不多說,直接看代碼

        public class ValidList<E> implements List<E> {
         
         @Valid
         private List<E> list = new LinkedList<>();
         
         @Override
         public int size() {
          return list.size();
         }
         
         @Override
         public boolean isEmpty() {
          return list.isEmpty();
         }
         
         @Override
         public boolean contains(Object o) {
          return list.contains(o);
         }
         
         @Override
         public Iterator<E> iterator() {
          return list.iterator();
         }
         
         @Override
         public Object[] toArray() {
          return list.toArray();
         }
         
         @Override
         public <T> T[] toArray(T[] a) {
          return list.toArray(a);
         }
         
         @Override
         public boolean add(E e) {
          return list.add(e);
         }
         
         @Override
         public boolean remove(Object o) {
          return list.remove(o);
         }
         
         @Override
         public boolean containsAll(Collection<&#63;> c) {
          return list.containsAll(c);
         }
         
         @Override
         public boolean addAll(Collection<&#63; extends E> c) {
          return list.addAll(c);
         }
         
         @Override
         public boolean addAll(int index, Collection<&#63; extends E> c) {
          return list.addAll(index, c);
         }
         
         @Override
         public boolean removeAll(Collection<&#63;> c) {
          return list.removeAll(c);
         }
         
         @Override
         public boolean retainAll(Collection<&#63;> c) {
          return list.retainAll(c);
         }
         
         @Override
         public void clear() {
          list.clear();
         }
         
         @Override
         public E get(int index) {
          return list.get(index);
         }
         
         @Override
         public E set(int index, E element) {
          return list.set(index, element);
         }
         
         @Override
         public void add(int index, E element) {
          list.add(index, element);
         }
         
         @Override
         public E remove(int index) {
          return list.remove(index);
         }
         
         @Override
         public int indexOf(Object o) {
          return list.indexOf(o);
         }
         
         @Override
         public int lastIndexOf(Object o) {
          return list.lastIndexOf(o);
         }
         
         @Override
         public ListIterator<E> listIterator() {
          return list.listIterator();
         }
         
         @Override
         public ListIterator<E> listIterator(int index) {
          return list.listIterator(index);
         }
         
         @Override
         public List<E> subList(int fromIndex, int toIndex) {
          return list.subList(fromIndex, toIndex);
         }
         
        public List<E> getList() {
         return list;
        }
         
        public void setList(List<E> list) {
         this.list = list;
        }
         
        }

        然后用ValidList類替換我們的List即可

        @PostMapping(value="/test")
        public ApiResult getRepaymentPlan(@RequestBody @Validated ValidList<Test> repaymentPlanVOs){
         
        }

        補充,將@Validated返回的異常替換為我們自定義的json格式并返回,只需在當(dāng)前controller類里注入一個異常bean,并用@ExceptionHandler來捕獲對應(yīng)的異常即可。MethodArgumentNotValidException為@Validated返回的異常,這里只需要捕獲對應(yīng)異常即可

        @ExceptionHandler(value = MethodArgumentNotValidException.class)
         @ResponseBody
         public Map<String,Object> allExceptionHandler(MethodArgumentNotValidException e){
            Map<String,Object> result = new HashMap<String,Object>();
         MethodArgumentNotValidException ex = (MethodArgumentNotValidException)e;
         BindingResult bindingResult = ex.getBindingResult();
         StringBuilder errMsg = new StringBuilder(bindingResult.getFieldErrors().size() * 16);
         errMsg.append("Invalid request:");
         for (int i = 0 ; i < bindingResult.getFieldErrors().size() ; i++) {
          if(i > 0) {
          errMsg.append(",");
          }
          FieldError error = bindingResult.getFieldErrors().get(i);
          errMsg.append(error.getField()+":"+error.getDefaultMessage());
         }
            result.put("res_code","400");
            result.put("res_mess",errMsg.toString());
         return result;
         }

        看完這篇關(guān)于@Validated怎么驗證List集合的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。

        當(dāng)前題目:@Validated怎么驗證List集合
        當(dāng)前路徑:http://www.jbt999.com/article30/gseoso.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管外貿(mào)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站網(wǎng)頁設(shè)計公司、小程序開發(fā)、搜索引擎優(yōu)化

        廣告

        聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

        成都做網(wǎng)站

      2. 
        

          <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
          1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>
            777国产视频 | 欧美性爱综合 | 97天天操| 91精品国产91热久久久做人人 | 激情小说五月天 | 成人网大香蕉 | 久久伊人免费视频 | 操骚逼的视频 | 美女扒开尿口让男生桶爽视频 | 手机无码在线 |