摘要:使用和實現(xiàn)請求參數(shù)校驗統(tǒng)一異常處理最開始我使用的是。后臺接口使用方法接收參數(shù),特別麻煩。接收之后,我們還得進行一連串的參數(shù)校驗。使用接收參數(shù),自動將前端參數(shù)解析封裝成實體類。統(tǒng)一異常處理類實現(xiàn)完成。
springmvc使用@Valid和@ControllerAdvise實現(xiàn)請求參數(shù)校驗統(tǒng)一異常處理
最開始我使用的是jsp+servlet。后臺接口使用 request.getParameter(key) 方法接收參數(shù),特別麻煩。接收之后,我們還得進行一連串的參數(shù)校驗。現(xiàn)在使用springboot的mvc。使用@ReuestBody接收參數(shù),自動將前端參數(shù)解析封裝成實體類。很方便,但是還是需要校驗參數(shù)。下面我介紹一個簡單的方式,通過@Valid和@ControllerAdvice注解實現(xiàn)參數(shù)校驗和統(tǒng)一異常處理。
統(tǒng)一異常處理首先介紹統(tǒng)一異常處理,創(chuàng)建類GlobalExceptionHandler
通過ControllerAdvice和@ExceptionHandler注解,在Controller中發(fā)生的異常錯誤就到指定異常處理方法進行處理。
查看一下MethodArgumentNotValidException這個類的源碼
它繼承了Exception,包含參數(shù)和錯誤。BindError參數(shù)實現(xiàn)了error。
統(tǒng)一異常處理類實現(xiàn)完成。
我們在@RequestBody或者其它注解前面加上@Valid,就可以對實體類參數(shù)進行校驗
通過@Valid注解我們就對請求的參數(shù)進行驗證
通過javax的@NotNUll等注解可以進行校驗。
如果參數(shù)是一個實體類,這個實體類的參數(shù)也需校驗,需要在參數(shù)上加上@Valid注解
ok,現(xiàn)在參數(shù)不對的話,自動跳到GlobalExceptionHandler類的指定方法進行處理。
未完待續(xù),有問題請留言!
個人博客地址: https://blog.ailijie.top/arch...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/75291.html
摘要:只要有一個攔截器不放行,不能執(zhí)行完成號不放行和號不放行測試結(jié)果總結(jié)只有前邊的攔截器方法放行,下邊的攔截器的才執(zhí)行。至于他們的攔截器鏈的調(diào)用順序,和的是沒有差別的。 前言 本博文主要講解的知識點如下: 校驗器 統(tǒng)一處理異常 RESTful 攔截器 Validation 在我們的Struts2中,我們是繼承ActionSupport來實現(xiàn)校驗的...它有兩種方式來實現(xiàn)校驗的功能 手寫...
摘要:否則非法請求參數(shù)小則影響用戶體驗或者產(chǎn)生垃圾數(shù)據(jù),大則會拖跨整個系統(tǒng)其次,手工對所有的參數(shù)進行校驗相當繁瑣,容易出錯,而且最后,通過工具來完成其實是比較好的方式,但是必須讓工具變得優(yōu)雅一些。 聲明:本文屬原創(chuàng)文章,始發(fā)于公號:程序員自學(xué)之道,同步發(fā)布到 sf,轉(zhuǎn)載請注明出處。 不夠好的方案 在 Web 開發(fā)中, 我們經(jīng)常需要校驗各種參數(shù),這是一件繁瑣又重要的事情,對于很多人來說,在做參...
摘要:是目前最流行的一種互聯(lián)網(wǎng)軟件架構(gòu)。協(xié)議,是一個無狀態(tài)協(xié)議,即所有的狀態(tài)都保存在服務(wù)器端。而這種轉(zhuǎn)化是建立在表現(xiàn)層之上的,所以就是表現(xiàn)層狀態(tài)轉(zhuǎn)化。具體說,就是協(xié)議里面,四個表示操作方式的動詞。 一、SpringMVC概述 Spring為展現(xiàn)層提供的基于MVC設(shè)計理念的優(yōu)秀的Web框架,是目前最主流的MVC框架之一 Spring3.0之后全面超越Struts2,成為最優(yōu)秀的MVC框架 S...
摘要:所以就有今天的話題利用注解對進行校驗。利用注解對進行校驗,主要是利用框架,實現(xiàn)了的接口關(guān)于校驗的接口,直接使用非常方便,省時省力。 最近寫業(yè)務(wù)代碼,因為頁面復(fù)雜,導(dǎo)致對應(yīng)的Bean屬性非常多,而產(chǎn)品大佬又提出各種校驗要求。 emmmmmm......如果寫if條件來校驗,那簡直是又臭又長。 所以就有今天的話題——利用注解對Bean進行校驗。 利用注解對Bean進行校驗,主要是利用hib...
摘要:我們可不可以提供一個公共的入口進行統(tǒng)一的異常處理呢當然可以。一般我們可以在地址上帶上版本號,也可以在參數(shù)上帶上版本號,還可以再里帶上版本號,這里我們在地址上帶上版本號,大致的地址如,其中,即代表的是版本號。 上一篇帶領(lǐng)大家初步了解了如何使用 Spring Boot 搭建框架,通過 Spring Boot 和傳統(tǒng)的 SpringMVC 架構(gòu)的對比,我們清晰地發(fā)現(xiàn) Spring Boot ...
閱讀 644·2023-04-25 15:49
閱讀 3099·2021-09-22 15:13
閱讀 1235·2021-09-07 10:13
閱讀 3467·2019-08-29 18:34
閱讀 2555·2019-08-29 15:22
閱讀 499·2019-08-27 10:52
閱讀 677·2019-08-26 18:27
閱讀 3009·2019-08-26 13:44