最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring學(xué)習(xí)之參數(shù)傳遞與檢驗詳解

 更新時間:2017年07月13日 09:55:43   作者:沉淀  
這篇文章主要給大家介紹了關(guān)于spring參數(shù)傳遞與檢驗的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作能帶來一定的幫助,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

Spring是于2003 年興起的一個輕量級的Java 開發(fā)框架,非常受現(xiàn)在開發(fā)者的喜愛,下面這篇文章主要給大家介紹了關(guān)于spring參數(shù)傳遞與檢驗的相關(guān)內(nèi)容,分享出供大家參考學(xué)習(xí),下面來一起看看詳細的介紹:

一、背景

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

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

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

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

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

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

對于比較復(fù)雜,有層級關(guān)系情況,使用注解@RequestBody實現(xiàn)

public String setUser(@RequestBody String userInfo) {
 //使用fastjson轉(zhuǎn)換為實體類
}

不管使用以上的哪種方式都要對參數(shù)進行校驗,如果一個個參數(shù)的檢查是否為空,檢查邊界范圍,會導(dǎo)致代碼很多。使用@Valid注解來對參數(shù)進行校驗?zāi)茏尨a更整潔。

二、使用

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

@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)?
     "參數(shù)錯誤!":list.get(0).getDefaultMessage();
   jsonObject.put("errorMessage",errorMessage );
   return jsonObject;
  }
  //saveUser保存用戶信息模塊省略
  jsonObject.put("errorMessage","success");
  return jsonObject;
 }
//使用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注解進行參數(shù)檢查
  • 在沒有使用BindingResult時,程序會拋出空指針等異常信息,不能返回自定義信息,網(wǎng)上查了一下需要使用BindingResult來處理Error信息,自定義返回錯誤數(shù)據(jù)。
  • @NotNull,@Pattern,@Size,@Max,@Min,@Digits是我在項目中經(jīng)常使用的注解

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論

通海县| 黑龙江省| 滦南县| 新田县| 隆尧县| 竹山县| 万全县| 开平市| 丽水市| 黔西县| 和硕县| 和平区| 三亚市| 宁陵县| 那曲县| 肥东县| 潼关县| 马公市| 瓮安县| 福清市| 鄢陵县| 凤翔县| 庄浪县| 乐亭县| 彭泽县| 托克托县| 凯里市| 高陵县| 徐州市| 当涂县| 乌鲁木齐县| 鹤峰县| 桐梓县| 柘荣县| 平舆县| 监利县| 崇义县| 政和县| 安宁市| 扎兰屯市| 汉阴县|