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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本亚洲欧洲高清有码在线播放 | 亚洲欧美一级夜夜爽w | 无码人妻视频又大又粗欧美 | 欧美日韩第二页 | 免费尤物视频 | 日b在线 | 97精品国产高清在线看入口 | 精品国产国偷自产在线观看 | 97精品国产自在现线免费观看 | 精品国产91久久久久久久 | 国产欧美日韩一区二区三区在线 | 麻豆天美精东果冻传媒在线 | 久久国产36精品色熟妇 | a毛片免费全部在线播放毛 a级在线看 | 日本亚欧乱色视频在线观看 | 成人免费高清视频 | 91九色jiuse006| pregnantxxx孕交| 桃乃木香奈ipx在线播放 | 亚洲天堂影院 | 欧美日韩精品乱国产538 | 猛h辣h高h文湿校园1v1 | 日本一区二区三区久久 | 91你懂的 | 撕开老师的丝袜白丝扒开粉嫩的小 | 午夜福到在线4国产 | 久久久久久久尹人综合网亚洲 | 麻豆视频网 | 性欧美videosex18嫩 | 冰山美人调教耻辱h | 日本在线观看www | 亚洲国产精品久久无套麻豆 | 欧美人妖另类性hd | 成人免费草草视频 | 日韩亚洲欧美综合一区二区三区 | 99精品视频在线观看 | 国产一区二区精品久 | 精品国产午夜久久久久九九 | 放荡的女老板bd中文字幕 | 国产欧美一区二区三区免费 | 黄情视频 |