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

无锡网站制作哪家实惠信息发布型企业网站的特点

无锡网站制作哪家实惠,信息发布型企业网站的特点,本地wordpress搬家,电脑系统优化软件哪个好用Spring 对请求参数的优雅处方式#xff08;重写序列化方法#xff09; 描述前端传参方式介绍代码实现#xff1a;1、重写序列化方式代码2、设置类自动加载到 Spring 中 描述 在我们日常项目开发过程中#xff0c;往往会遇到前端请求参数中有空格的情况#xff0c;前端提交… Spring 对请求参数的优雅处方式重写序列化方法 描述前端传参方式介绍代码实现1、重写序列化方式代码2、设置类自动加载到 Spring 中 描述 在我们日常项目开发过程中往往会遇到前端请求参数中有空格的情况前端提交后后端的字符串什么形式的都有例 xxx , xxxxx , “”, “null” 等等这样不对空格进行处理直接传参不仅浪费空间还会造成数据跟查询结果有出入的情况引起很多不必要的麻烦。那么怎么快速的去除前端传参中字符串类型参数的前后空格呢 前端传参方式介绍 在开发过程中后端接收前端的传参有两种方式 使用 url 或者 form 表单进行传参后端通过 RequestParam 注解的方式从 url 中获取参数。使用 body 进行传参后端通过 RequestBody 注解进行参数的接收。 对于 url 或者 form 表单的方式我们在参数绑定时注册下面的类即可对参数进行处理 RestControllerAdvice public class GlobalHandler {private static final Logger LOGGER LoggerFactory.getLogger(GlobalHandler.class);/*** url和form表单中的参数trim* param binder*/InitBinderpublic void initBinder(WebDataBinder binder) {// 构造方法中 boolean 参数含义为如果是空白字符串, 是否转换为 null// 即如果为 true, 那么 会被转换为 null, 否者为binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));} }对于使用 body 中的 JSON 或者 XML 的传参方式在 Spring 中默认是使用的 Jackson 对参数进行序列化处理所以对 Jackson 加入如下的自定义转换器即可实现 Configuration public class ApplicationConfig {/*** Request Body中JSON或XML对象参数trim** return*/Beanpublic Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {return jacksonObjectMapperBuilder - {// 时区问题jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());jacksonObjectMapperBuilder.deserializerByType(String.class, new StdScalarDeserializerString(String.class) {Overridepublic String deserialize(JsonParser jsonParser, DeserializationContext ctx)throws IOException {// 去除前后空格return StringUtils.trimWhitespace(jsonParser.getValueAsString());}});};} }代码实现 1、重写序列化方式代码 对于上述的两种传参方式我们优化一下将两个合并成一个统一的类来进行实现 package com.wblog.framework.config;import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer; import org.springframework.beans.propertyeditors.StringTrimmerEditor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.util.StringUtils; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.servlet.DispatcherServlet; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import javax.servlet.Servlet; import java.io.IOException;/*** 序列化处理前端请求数据的前后空格* author wangxk* date 2023-12-27*/ Configuration ConditionalOnWebApplication(type ConditionalOnWebApplication.Type.SERVLET) ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class}) AutoConfigureAfter(WebMvcAutoConfiguration.class) public class WebMvcStringTrimAutoConfiguration {ControllerAdvicepublic static class ControllerStringParamTrimConfig {/*** url和form表单中的参数trim*/InitBinderpublic void initBinder(WebDataBinder binder) {// 构造方法中 boolean 参数含义为如果是空白字符串,是否转换为null// 即如果为true,那么 会被转换为 null,否者为 StringTrimmerEditor stringTrimmerEditor new StringTrimmerEditor(false);binder.registerCustomEditor(String.class, stringTrimmerEditor);}}/*** Request Body中JSON或XML对象参数trim*/Beanpublic Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {return jacksonObjectMapperBuilder - jacksonObjectMapperBuilder.deserializerByType(String.class, new StdScalarDeserializerString(String.class) {Overridepublic String deserialize(JsonParser jsonParser, DeserializationContext ctx)throws IOException {System.out.println(Jackson2ObjectMapperBuilderCustomizer jsonParser.getValueAsString() jsonParser.getValueAsString());return StringUtils.trimWhitespace(jsonParser.getValueAsString());}});} }2、设置类自动加载到 Spring 中 由于 Spring 启动时是默认加载同级别目录下所有的 Bean如果我们重写的 WebMvcStringTrimAutoConfiguration 类是在外部目录时我们就需要手动去指定一下需要加载的类在 resurces 下创建 META-INF/spring.factories 文件将我们的类加到里面去 org.springframework.boot.autoconfigure.EnableAutoConfiguration\ com.wblog.framework.config.WebMvcStringTrimAutoConfiguration参考链接 SpringBoot去除字符串类型参数的前后空格Springmvc请求参数的优雅处方式
http://www.hkea.cn/news/14460133/

相关文章:

  • 网页排版精美的中文网站微信小程序开发商家
  • 网站建设备案策划书无锡哪里有建设网站
  • 网站建设单词wordpress调用post
  • 网站排版工具南阳网站建设制作价格
  • 云南省网站备案虚拟主机有几种类型
  • 网站快捷导航ie怎么做深圳怎么注册公司网站
  • 周口网站制作哪家好网络游戏排行榜2021前十名手游
  • wap建站程序源码制作外贸网站成本
  • 网站维护学习网站建设法规
  • 免费建站免费推广的网站网站描述标签怎么写
  • 网络公司做网站后期注意广东网站建设怎么选
  • 电商网站建设需求分析书昵图网免费素材
  • 网站后缀pw律师关键词推广
  • 网站制作应用知识杰奇网站地图插件
  • 嘉兴网站优化排名全网营销张启明
  • 吉林省可信网站认证牌匾网站设计师联盟
  • 漳浦网站开发中小企业一站式服务平台
  • 网站开发 京东金融投资网站 php源码
  • 做导航网站犯法吗如何租用网站服务器
  • seo基础课程如何优化网站提高排名
  • 网站首页图片代码皋兰县建设局网站
  • 手机网站建设最新报价企业文化墙制作
  • 黑龙江建设人员证件查询网站开发软件的应用
  • 网站设计时尚芜湖公司网站建设
  • 免费推广网站入口2023godaddy网站建设
  • 网站关键词优化报价网站会员注册系统源码
  • 教育网站开发官方网站平台有哪些
  • 安徽网站开发培训价格html网站怎么做
  • 广德做网站设计开发软件著作权证书
  • 网站 第三方登录如何进入微网站