一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - spring學習之參數傳遞與檢驗詳解

spring學習之參數傳遞與檢驗詳解

2020-12-01 14:46沉淀 Java教程

這篇文章主要給大家介紹了關于spring參數傳遞與檢驗的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作能帶來一定的幫助,需要的朋友們下面跟著小編來一起學習學習吧。

前言

Spring是于2003 年興起的一個輕量級的Java 開發框架,非常受現在開發者的喜愛,下面這篇文章主要給大家介紹了關于spring參數傳遞檢驗的相關內容,分享出供大家參考學習,下面來一起看看詳細的介紹:

一、背景

在spring請求時,要對參數進行檢查,以前一直使用如下方式來獲取參數,在參數特別多的時候,代碼很不簡潔。

?
1
String userId= request.getParameter("userId");

后來使用注解@RequestParam代碼整潔了好多

?
1
@RequestParam(value = "userId",required=true) String userId

后來對于參數比較多的情況,使用一個bean來接收請求參數

?
1
2
@RequestMapping(value="/saveUser")
public String saveUser(User user) {}

對于比較復雜,有層級關系情況,使用注解@RequestBody實現

?
1
2
3
public String setUser(@RequestBody String userInfo) {
 //使用fastjson轉換為實體類
}

不管使用以上的哪種方式都要對參數進行校驗,如果一個個參數的檢查是否為空,檢查邊界范圍,會導致代碼很多。使用@Valid注解來對參數進行校驗能讓代碼更整潔。

二、使用

本文以實體類接收請求參數為例簡單講解,validation一共有hibernate-validator,javax.validation和spring-validator三種注解,本文主要是簡單講解一下javax.validation的使用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@RequestMapping(value="/saveUser")
@ResponseBody
public JSONObject saveUser(@Valid User user, BindingResult result){
  JSONObject jsonObject = new JSONObject();
  //判斷是否檢驗錯誤信息
  if(result.hasErrors()){
   //取出第一條錯誤信息返回
   List<FieldError> list = result.getFieldErrors();
   String errorMessage = CollectionUtils.isEmpty(list)?
     "參數錯誤!":list.get(0).getDefaultMessage();
   jsonObject.put("errorMessage",errorMessage );
   return jsonObject;
  }
  //saveUser保存用戶信息模塊省略
  jsonObject.put("errorMessage","success");
  return jsonObject;
 }
?
1
2
3
4
5
6
7
8
9
//使用lombok
@Data
public class User implements Serializable{
 @NotNull(message = "用戶id不能為空")
 @Pattern(regexp="^\\d{12}$",message = "用戶id非法")
 private String userId;
 private String userName;
 private int age;
}
  • 使用@Valid注解進行參數檢查
  • 在沒有使用BindingResult時,程序會拋出空指針等異常信息,不能返回自定義信息,網上查了一下需要使用BindingResult來處理Error信息,自定義返回錯誤數據。
  • @NotNull,@Pattern,@Size,@Max,@Min,@Digits是我在項目中經常使用的注解

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://segmentfault.com/a/1190000010126444

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女禁区视频无遮挡免费看 | 亚洲第一免费播放区 | 日韩毛片基地一区二区三区 | 免费看打屁股视频的软件 | 日本人妖网站 | 天堂在线中文无弹窗全文阅读 | 国产日韩高清一区二区三区 | 大学生初次破苞免费视频 | 2019nv天堂香蕉在线观看 | 亚洲精品乱码蜜桃久久久 | 欧美久久久久久久一区二区三区 | 精品欧美一区二区三区久久久 | 日本xxxx在线视频免费 | 日本一卡=卡三卡免费 | 亚洲欧美日韩国产精品一区 | 884aa草莓视频| 男人午夜禁片在线观看 | www.羞羞答答 | 国产一区二区三区福利 | 丰满肥臀风间由美357在线 | 特级av毛片免费观看 | 成人影院在线观看 | 欧美乱子伦xxxx12在线 | 日韩一区视频在线 | 教师波多野结衣在线播放 | 91久久夜色精品国产九色 | 特黄特色大片免费视频播放 | bl双性受乖调教改造身体 | 很黄的孕妇a级黄毛片 | www.久久99| 成年人在线视频免费观看 | 国产精品露脸国语对白河北 | 国产精品久久久久久吹潮 | 精彩国产萝视频在线 | 亚洲国产成人久久综合区 | 亚洲高清中文字幕一区二区三区 | 国产一区二区不卡视频 | 国产精品视频一区二区三区w | 色婷婷综合缴情综六月 | 久99视频精品免费观看福利 | 暖暖的视频完整视频韩国免费 |