前言

Spring是于2003 年兴起的一个轻量级的Java 开发框架,非常受现在开发者的喜爱,下面这篇文章主要给大家介绍了关于spring参数传递与检验的相关内容,分享出供大家参考学习,下面来一起看看详细的介绍:
一、背景
在spring请求时,要对参数进行检查,以前一直使用如下方式来获取参数,在参数特别多的时候,代码很不简洁。
String userId= request.getParameter("userId");
后来使用注解@RequestParam代码整洁了好多
@RequestParam(value = "userId",required=true) String userId
后来对于参数比较多的情况,使用一个bean来接收请求参数
@RequestMapping(value="/saveUser")
public String saveUser(User user) {}
对于比较复杂,有层级关系情况,使用注解@RequestBody实现
public String setUser(@RequestBody String userInfo) {
//使用fastjson转换为实体类
}
不管使用以上的哪种方式都要对参数进行校验,如果一个个参数的检查是否为空,检查边界范围,会导致代码很多。使用@Valid注解来对参数进行校验能让代码更整洁。
二、使用
本文以实体类接收请求参数为例简单讲解,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)?
"参数错误!":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;
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# spring
# 参数传递
# spring传递list参数
# springmvc的参数传递
# Spring MVC 学习 之 - URL参数传递详解
# spring MVC中传递对象参数示例详解
# 自定义
# 要对
# 这篇文章
# 错误信息
# 为空
# 我在
# 相关内容
# 能让
# 给大家
# 三种
# 实体类
# 为例
# 谢谢大家
# 哪种
# 比较多
# 第一条
# 转换为
# 很不
# 抛出
# 主要是
相关文章:
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
南宁网站建设制作定制,南宁网站建设可以定制吗?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何通过多用户协作模板快速搭建高效企业网站?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
建站之星展会模板:智能建站与自助搭建高效解决方案
网站制作企业,网站的banner和导航栏是指什么?
如何通过山东自助建站平台快速注册域名?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
如何在阿里云虚拟主机上快速搭建个人网站?
建站之星如何实现PC+手机+微信网站五合一建站?
C++如何使用std::optional?(处理可选值)
南京网站制作费用,南京远驱官方网站?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
中山网站制作网页,中山新生登记系统登记流程?
建站之星如何实现五合一智能建站与营销推广?
网站制作壁纸教程视频,电脑壁纸网站?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
公司门户网站制作流程,华为官网怎么做?
建站主机选择指南:服务器配置与SEO优化实战技巧
专业网站建设制作报价,网页设计制作要考什么证?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何在VPS电脑上快速搭建网站?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
重庆市网站制作公司,重庆招聘网站哪个好?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
网站图片在线制作软件,怎么在图片上做链接?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
如何在西部数码注册域名并快速搭建网站?
Thinkphp 中 distinct 的用法解析
安云自助建站系统如何快速提升SEO排名?
微信小程序 五星评分(包括半颗星评分)实例代码
建站之星3.0如何解决常见操作问题?
公司网站的制作公司,企业网站制作基本流程有哪些?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
建站之星安装步骤有哪些常见问题?
如何通过FTP服务器快速搭建网站?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
网站制作新手教程,新手建设一个网站需要注意些什么?
*请认真填写需求信息,我们会在24小时内与您取得联系。