spring学习之参数传递与检验详解
发布时间 - 2026-01-11 02:19:01 点击率:次前言

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;
}
- 使用@Valid注解进行参数检查
- 在没有使用BindingResult时,程序会抛出空指针等异常信息,不能返回自定义信息,网上查了一下需要使用BindingResult来处理Error信息,自定义返回错误数据。
- @NotNull,@Pattern,@Size,@Max,@Min,@Digits是我在项目中经常使用的注解
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# spring
# 参数传递
# spring传递list参数
# springmvc的参数传递
# Spring MVC 学习 之 - URL参数传递详解
# spring MVC中传递对象参数示例详解
# 自定义
# 要对
# 这篇文章
# 错误信息
# 为空
# 我在
# 相关内容
# 能让
# 给大家
# 三种
# 实体类
# 为例
# 谢谢大家
# 哪种
# 比较多
# 第一条
# 转换为
# 很不
# 抛出
# 主要是
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python函数文档自动校验_规范解析【教程】
Laravel怎么在Controller之外的地方验证数据
网站制作软件免费下载安装,有哪些免费下载的软件网站?
制作电商网页,电商供应链怎么做?
详解jQuery中基本的动画方法
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel怎么实现验证码(Captcha)功能
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
🚀拖拽式CMS建站能否实现高效与个性化并存?
Laravel distinct去重查询_Laravel Eloquent去重方法
制作企业网站建设方案,怎样建设一个公司网站?
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
JavaScript如何实现继承_有哪些常用方法
重庆市网站制作公司,重庆招聘网站哪个好?
微信小程序 scroll-view组件实现列表页实例代码
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
怎样使用JSON进行数据交换_它有什么限制
Laravel如何为API编写文档_Laravel API文档生成与维护方法
如何在VPS电脑上快速搭建网站?
EditPlus 正则表达式 实战(3)
C#如何调用原生C++ COM对象详解
长沙企业网站制作哪家好,长沙水业集团官方网站?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
JavaScript如何操作视频_媒体API怎么控制播放
php json中文编码为null的解决办法
如何在建站主机中优化服务器配置?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Laravel如何发送系统通知?(Notification渠道示例)
如何用y主机助手快速搭建网站?
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
企业网站制作这些问题要关注
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
黑客如何通过漏洞一步步攻陷网站服务器?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
独立制作一个网站多少钱,建立网站需要花多少钱?
网站图片在线制作软件,怎么在图片上做链接?
JavaScript如何实现错误处理_try...catch如何捕获异常?
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
什么是javascript作用域_全局和局部作用域有什么区别?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
b2c电商网站制作流程,b2c水平综合的电商平台?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何用免费手机建站系统零基础打造专业网站?

