当前位置: 首页 > article >正文

SpringBoot提交参数去除前后空格

介绍

前台提交的请求参数,自动去除前后空格

配置代码

去除路径参数的前后空格

import org.springframework.beans.propertyeditors.StringTrimmerEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;

@ControllerAdvice
public class GlobalControllerAdvice {

    /**
     * Get请求参数去除空格
     * @param binder
     */
    @InitBinder
    public void stringTrimmerEditor(WebDataBinder binder) {
        binder.registerCustomEditor(String.class,new StringTrimmerEditor(true));
    }

}

去除@RequestBody json的参数前后空格

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.io.IOException;

@Configuration
public class AppConfig {

    /**
     * 注解@RequestBody中JSON或XML对象参数,去除空格
     * @return
     */
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return jacksonObjectMapperBuilder -> {
            // 为 String 类型自定义反序列化操作
            jacksonObjectMapperBuilder
                    .deserializerByType(String.class, new StdScalarDeserializer<String>(String.class) {
                        @Override
                        public String deserialize(JsonParser jsonParser, DeserializationContext ctx)
                                throws IOException {
                            // 去除前后空格
                            return StringUtils.trim(jsonParser.getValueAsString());
                        }
                    });
        };
    }

}

http://www.kler.cn/a/404463.html

相关文章:

  • WPF如何全局应用黑白主题效果
  • C++桥接模式在使用时需要注意什么
  • 不需要双手离开键盘 vscode
  • el-progress进度条框开着时,要实时刷新显示进度条
  • AI一键生成原创花卉印花图案——创新与效率的结合
  • PCB 间接雷击模拟
  • Linux firewall防火墙规则
  • Spring Security 安全认证框架
  • 详解Oracle表的类型(一)
  • Makefile 之 join
  • 2024年亚太地区数学建模大赛A题-复杂场景下水下图像增强技术的研究
  • #Uniapp篇:支持纯血鸿蒙发布适配UIUI
  • Spring Boot教程之Spring Boot简介
  • mysql 唯一键
  • ssm157基于Vue框架的订餐系统+vue(论文+源码)_kaic
  • 45.坑王驾到第九期:Mac安装typescript后tsc命令无效的问题
  • 鸿蒙学习高效开发与测试-应用程序框架和HarmonyOS SDK(3)
  • 【网络工程】查看自己电脑网络IP,检查网络是否连通
  • 算法【最长递增子序列问题与扩展】
  • 移动应用开发:Android Studio实现简易注册页(数据存放以SharedPreferences形式)
  • 奇异值分解和深度学习
  • Linux-Nginx虚拟主机
  • 【智谱清言-注册_登录安全分析报告】
  • MACOS开发、使用常见问题汇总
  • 算法全解析:从分治法到双指针的详细指南
  • 《C语言程序设计现代方法》note-6 函数