Validated驗證List集合

2021-10-03 02:01:24 字數 2332 閱讀 3679

在開發時發現,@validated只能驗證單個實體類,在驗證list集合時則不生效

public apiresult getrepaymentplan(@requestbody @validated listrepaymentplanvos)

經過查資料得知,@valid是可以使用的,我們自定義乙個validlist類來替換list就可以達到驗證的目的,話不多說,直接看**

public class validlistimplements list

@override

public boolean isempty()

@override

public boolean contains(object o)

@override

public iteratoriterator()

@override

public object toarray()

@override

public t toarray(t a)

@override

public boolean add(e e)

@override

public boolean remove(object o)

@override

public boolean containsall(collection<?> c)

@override

public boolean addall(collection<? extends e> c)

@override

public boolean addall(int index, collection<? extends e> c)

@override

public boolean removeall(collection<?> c)

@override

public boolean retainall(collection<?> c)

@override

public void clear()

@override

public e get(int index)

@override

public e set(int index, e element)

@override

public void add(int index, e element)

@override

public e remove(int index)

@override

public int indexof(object o)

@override

public int lastindexof(object o)

@override

public listiteratorlistiterator()

@override

public listiteratorlistiterator(int index)

@override

public listsublist(int fromindex, int toindex)

public listgetlist()

public void setlist(listlist)

}

然後用validlist類替換我們的list即可

public apiresult getrepaymentplan(@requestbody @validated validlistrepaymentplanvos)

補充,將@validated返回的異常替換為我們自定義的json格式並返回,只需在當前controller類裡注入乙個異常bean,並用@exceptionhandler來捕獲對應的異常即可。methodargumentnotvalidexception為@validated返回的異常,這裡只需要捕獲對應異常即可

@exceptionhandler(value = methodargumentnotvalidexception.class)

@responsebody

public mapallexceptionhandler(methodargumentnotvalidexception e)

fielderror error = bindingresult.getfielderrors().get(i);

} result.put("res_code","400");

result.put("res_mess",errmsg.tostring());

return result;

}

Validated註解校驗

最近新專案是使用hibernate validator做表單驗證,遇到有id在更新時不能為空,而在新增時需要為空的情況,所有使用了group屬性來指定在什麼情況下使用哪個驗證規則,而在controller方法只使用 validated 來分組驗證 public apiresponsecreateus...

資料校驗 validated註解

使用方法 建立實體bean data public class oprstadelayfeeupdparam extends baseparam 建立controller responseresult updatedelayfeeinfo requestbody validated oprstade...

利用 Validated註解校驗引數

validated註解的使用 value updateclew method requestmethod.post apioperation value 修改線索內容 notes 修改線索內容 public result updatetwmclew validated requestbody api...