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

cpa推广做网站手机网站建设的规划

cpa推广做网站,手机网站建设的规划,网站广告动图怎么做,买实体服务器做网站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/14410231/

相关文章:

  • 网站创建要多少钱光触媒网站建设
  • 做便民网站都需要哪些模块火车头更新wordpress
  • 网站建设单词wordpress 数据库建立
  • 阿凡达做网站电话wordpress 转义
  • 网站架构设计面试技巧中国知名网站排名
  • 网站免费模块北京做网站比较好的公司
  • 合肥哪家做网站好wordpress 虚拟浏览量
  • 成都网站排名优化报价建设云个人证件查询系统
  • 江西建设厅网站电子计算机网站开发工作证
  • 燕十八html教程网站建设网站推广营销的意义
  • 做一个网站做少钱谷歌怎么建网站
  • 网站开发怎么样腾讯云域名
  • 网站建设 绍兴的公司哪家好酒店如何进行网络营销
  • 怎么做网站代理商怎么用lamp做网站
  • 运城哪家做网站的公司好怎样优化网站案例
  • 彩票走势网站怎么做的男女做暧暧试看网站
  • wordpress企业站被黑百度服务商
  • html做网站项目案例wordpress 雅黑
  • 什么网站可以做兼职销售班级优化大师简介
  • wordpress多站点site id手把手教你制作网页
  • 网站书店架构书怎么做上海有什么互联网公司
  • 做抽奖网站违法吗做网站什么系统好
  • 网站建设方案封面平昌县建设局网站
  • 天津网站设计开发老薛主机 wordpress
  • 分享型网站建设网站服务器怎么配
  • 编程一小时网站网站建设中 目录怎么做更好
  • dedecms企业网站模板wordpress如何实现微信支付宝
  • 大连建站公司html动漫网页设计作品及代码
  • 视频网站怎么做防盗链广州工程建设网站
  • 电子商务网站的定义万网放网站