社区首页 >问答首页 >弹簧控制器枚举请求验证

弹簧控制器枚举请求验证
EN

Stack Overflow用户
提问于 2016-11-16 01:36:15
回答 1查看 4.6K关注 0票数 2

我有一个简单的弹簧rest控制器,如下所示。

代码语言:javascript
代码运行次数:0
复制
@RestController
public class MyController {

@RequestMapping(path = "mapping", method = RequestMethod.POST, produces = {"application/json"})
    public MyResponse create(@RequestBody MyModel requestParam
    ) throws InvalidApplicationSentException, AuthenticationFailedException {
 // method body
}

下面是用作请求参数的MyModel类。

代码语言:javascript
代码运行次数:0
复制
public class MyModel {
    private RequestType requestType;
    // a lot of other properties ..
}

现在,当我试图调用这个传递RequestType无效值的端点时,我返回了一个exeption:

代码语言:javascript
代码运行次数:0
复制
org.springframework.http.converter.HttpMessageNotReadableException
Could not read document: Can not construct instance of com.mypackage.RequestType from String value 'UNDEFINED': value not one of declared Enum instance names: [IMPROTANT, NOT_IMPORTANT]

当传递不正确的值而不抛出错误时,spring是否会将枚举设置为空?

我使用的是spring 4,我更喜欢使用注释而不是xml文件的配置

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-16 01:49:11

您需要在枚举类http://chrisjordan.ca/post/50865405944/custom-json-serialization-for-enums-using-jackson中实现自定义JSON序列化方法

在枚举中使用@JsonCreator,在nullundefined值上只返回null即可。

代码语言:javascript
代码运行次数:0
复制
@JsonCreator
public static RequestType create(String value) {
    if(value == null) {
        return null;
    }
    for(RequestType v : values()) {
        if(value.equals(v.getName())) {
            return v;
        }
    }
    return null;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40628523

复制
相关文章
在 Laravel 控制器中进行表单请求字段验证
在 Web 应用中,用户提交的数据往往是不可预测的,因此一个非常常见的需求是对用户提交的表单请求进行验证,以确保用户输入的是我们所期望的数据格式。很多 Web 框架都对此功能专门提供了工具集,Laravel 也不例外,而且这个工具集异常丰富,基本上涵盖了目前主流的所有验证规则,即使是一些非常个性化的验证,也可以基于 Laravel 验证类的扩展功能来自定义验证规则,非常强大。接下来,我们就一起来看看如何在 Laravel 中对表单请求进行验证。
学院君
2021/01/08
5.8K0
扭力弹簧介绍
扭力弹簧是一种机械蓄力结构,主要用于古代弩炮和其他弩类。扭力弹簧通过对材质柔软、韧度较大的弹性材料的扭曲或旋转进行蓄力、利用,使被发射物具有一定的机械能。
枫桦
2022/08/02
8070
yii2 在控制器中验证请求参数的使用方法
针对每个请求单独写个Model , 定义验证规则并进行验证。 缺点:写好多参数验证的Model 类。
用户7353560
2021/11/07
3.7K0
ADAMS弹簧的使用
针对带有弹簧的结构无法直接将弹簧模型导入并具备对应的效果,ADAMS View中提供了弹簧模块,可以直接在软件中创建弹簧,本文主要通过案例简单介绍弹簧的使用方法。
学识家
2022/05/05
1.2K0
SDRAM控制器设计(8)SDRAM控制器仿真验证
接下来,结合仿真模型(镁光官网提供的 SDRAM 模型)sdr文件,和编写的 testbench 文件验证所设计的控制器是否正确。 testbench如下
全栈程序员站长
2022/09/16
8270
[laravel] laravel验证请求参数
laravel 验证请求参数,有自带的规则,如果有特殊的规则,可以自己写正则验证逻辑
唯一Chat
2021/09/23
4K1
[laravel] laravel验证请求参数
Laravel Validation 表单验证(二、验证表单请求)
创建表单请求验证 面对更复杂的验证情境中,你可以创建一个「表单请求」来处理更为复杂的逻辑。表单请求是包含验证逻辑的自定义请求类。可使用 Artisan 命令 make:request 来创建表单请求类:
joshua317
2022/10/31
29.3K0
Java https请求 HttpsURLConnection 双向验证,post请求[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106090.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/09
1.2K0
springboot的资源请求验证
基于SpringBoot的资源请求验证(Aspectj和Interceptor两方式实现)附JWT验证token 前言 ​ 在项目中,我们需要对前端请求的资源进行验证,判断是否具有相应的权限。比如某写资源只有在登录之后才有请求权限。本章以请求之前是否登录为权限。
崔笑颜
2020/06/08
8320
【Laravel系统3.3】控制器与表单验证
在请求过程中,控制器往往是我们在做业务开发时绕不过的一环。从 MVC 理论的成熟到现代化的开发过程中,控制器一直扮演着重要的角色。可以说,我们可以不要前端(只做接口),可以不要模型(直接读取数据),但控制器却是必不可少的。当然,在正式的 MVC 模型中,视图是可以直接和模型交互的,由此,也引申出了 MVP 模型,其中的这个 P 就是强化控制器的作用,让模型和视图解耦。其实我们大部分正规的开发,都是基于这个 MVP 的,很少会直接让视图和模型去交互。
硬核项目经理
2023/03/03
8.7K0
【Laravel系统3.3】控制器与表单验证
FastAPI基础-请求体验证(一)
在Web应用程序中,请求体(request body)是一种常见的数据来源,用于向服务器发送数据。例如,在创建一个用户时,客户端通常会向服务器发送一个包含用户数据的请求体。由于请求体是来自客户端的数据,因此在接收和处理请求体时需要对数据进行验证,以确保数据符合预期。在FastAPI中,我们可以使用Pydantic模块来验证请求体数据。
堕落飞鸟
2023/05/07
6860
FastAPI基础-请求体验证(二)
有时候我们希望某些字段是可选的,即在请求体中可以缺失。在Pydantic中,我们可以使用typing.Optional来定义可选字段。下面是一个示例:
堕落飞鸟
2023/05/07
4330
validateRequest=false 可以禁用请求验证[通俗易懂]
参看了MVP的利用WebClient和WebRequest类获得网页源代码于是想自己动手写点,当然是参考其的办法啦。
全栈程序员站长
2022/06/28
5890
使用Photoshop实现弹簧字效果
一、准备工作 软件环境:PhotoshopCS6 目的:使用路径实现弹簧字效果 二、实验步骤 1,新建画布  2,背景改为黑色,快捷键 Alt+Delete 3,键入文字 ,发现文字显示不出来,这时选
Zoctopus
2018/06/04
7070
ExtJs三(实现验证码图片控制器)
在Extjs二(实现登录)http://www.cnblogs.com/aehyok/archive/2013/04/18/3028739.html,今天紧跟上一次内容继续,本次主要就是实现验证码图标控制器。
aehyok
2019/02/25
5760
ExtJs三(实现验证码图片控制器)
在Extjs二(实现登录)http://www.cnblogs.com/aehyok/archive/2013/04/18/3028739.html,今天紧跟上一次内容继续,本次主要就是实现验证码图标控制器。
aehyok
2018/09/11
7430
ExtJs三(实现验证码图片控制器)
Django跨域验证及OPTIONS请求
最近做的一个需求是:有两个后端服务器,一个是老项目(django),一个是新项目(djangorestframework),老项目不能做大的改动,只能在新项目进行修改,并且前端只能使用老项目的。老项目的登录认证是最简单的方式:数据库保存账号密码,登录时发送账号密码,检测是否正常,即算是登录成功。新后端是使用jwt认证方式,使用Django用户模块保存用户信息。以上是需求的前提,现在要做的是在老项目登录成功后,在前端请求新项目接口也能通过用户认证。
星星在线
2020/05/22
3K0
PHP 后端表单验证和请求处理
创建好前端的联系表单视图后,接下来,我们来编写提交表单后后端的 PHP 处理逻辑。
学院君
2020/09/28
2.6K0
PHP 后端表单验证和请求处理
枚举之后再验证性能太差?来试下动态规划
可以枚举出所有的组合方案,然后验证下是否满足重量小于某个值,记录下满足条件的价值最大的方案。
神说要有光zxg
2021/11/09
2830
枚举之后再验证性能太差?来试下动态规划
点击加载更多

相似问题

弹簧请求验证

20

弹簧Rest控制器放方法请求体验证?

10

弹簧引导后请求模型验证

41

模拟弹簧控制器验证器

10

弹簧控制器400 (坏请求)

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文