首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring initBinder StringTrimmerEditor -排除某些字段

Spring initBinder是Spring MVC框架中的一个注解,用于自定义数据绑定的规则。它可以用来处理表单提交的数据,将数据绑定到Controller中的方法参数上。

StringTrimmerEditor是Spring框架中的一个类,用于去除字符串参数的前后空格。它可以在数据绑定过程中对字符串类型的参数进行处理,去除不必要的空格。

排除某些字段是指在数据绑定过程中,不对某些字段进行处理。可以通过在initBinder方法中使用WebDataBinder的setDisallowedFields方法来实现。

例如,假设有一个表单提交的数据包含name和age两个字段,我们希望对name字段进行去除空格的处理,而不对age字段进行处理,可以按以下步骤操作:

  1. 在Controller中添加一个initBinder方法,并使用@InitBinder注解标记该方法。
  2. 在initBinder方法中创建一个WebDataBinder对象,并调用其setDisallowedFields方法,传入不需要处理的字段名,这里是age。
  3. 在initBinder方法中使用WebDataBinder的registerCustomEditor方法,传入String.class和一个StringTrimmerEditor对象,用于对name字段进行去除空格的处理。
  4. 在Controller的处理方法中,将name和age作为参数,它们会根据设置的规则进行数据绑定和处理。

示例代码如下:

代码语言:java
复制
@Controller
public class MyController {

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.setDisallowedFields("age");
        binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
    }

    @RequestMapping("/submit")
    public String submitForm(@RequestParam("name") String name, @RequestParam("age") int age) {
        // 处理表单提交的数据
        return "result";
    }
}

在上述示例中,name字段会被自动去除空格,而age字段不会进行任何处理。

推荐的腾讯云相关产品:腾讯云云服务器(CVM),腾讯云对象存储(COS),腾讯云数据库MySQL版(TencentDB for MySQL)。

腾讯云云服务器(CVM):提供弹性计算能力,可根据业务需求灵活调整配置,支持多种操作系统和应用场景。

腾讯云对象存储(COS):提供高可靠、低成本的对象存储服务,适用于图片、视频、文档等海量数据的存储和访问。

腾讯云数据库MySQL版(TencentDB for MySQL):提供高性能、可扩展的云数据库服务,支持自动备份、容灾等功能,适用于各种规模的应用程序。

更多关于腾讯云产品的信息,请访问腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从原理层面掌握@InitBinder的使用【享学Spring MVC】

你要想玩银牌就去找你王浩叔叔吧,他那银牌多 前言 为了讲述好Spring MVC最为复杂的数据绑定这块,我前面可谓是做足了功课,对此部分知识此处给小伙伴留一个学习入口,有兴趣可以点开看看:聊聊Spring...中的数据绑定 — WebDataBinder、ServletRequestDataBinder、WebBindingInitializer…【享学Spring】 @InitBinder这个注解是Spring...public class StringTrimmerEditor extends PropertyEditorSupport { // 将属性对象用一个字符串表示,以便外部的属性编辑器能以可视化的方式显示...text : text.trim(); setValue(text); } } 说明:Spring内置有org.springframework.beans.propertyeditors.StringTrimmerEditor...Spring内置注册了哪些?

3.4K20
  • 掌握@ControllerAdvice配合RequestBodyAdviceResponseBodyAdvice使用,让你的选择不仅仅只有拦截器【享学Spring MVC】

    在前面关于@ModelAttribute和@InitBinder 的相关文章中其实和这个注解是打过照面的:在此注解标注的类上使用@InitBinder等注解可以使得它对"全局"生效实现统一的控制。...: @RestControllerAdvice public class MyControllerAdvice { @InitBinder public void initBinder...//binder.setDisallowedFields("name"); binder.registerCustomEditor(String.class, new StringTrimmerEditor...所以很容易相想到Spring调用advice增强时最终调用的都是它,它就是一个门面。...同时也着重介绍了@JsonView的使用:它可以放入参时接收指定的字段;也可以让返回值中敏感字段(如密码、盐值等)不予返回,可做到非常灵活的配置和管理,实现一套代码多处使用的目的,提高集成程度。

    7.2K33

    SpringBoot中出入参增强的5种方法总结实战 : 加解密、脱敏、格式转换、时间时区处理等

    Spring Boot , Spring Cloud中,对接口的请求入参和出参进行自定义的序列化和反序列化增强,通常有以下几种方法: 1....使用@JsonSerialize和@JsonDeserialize注解 可以在实体类的字段上使用这两个注解来指定自定义的序列化器和反序列化器。...使用场景: 当需要对某个特定字段进行自定义的序列化和反序列化时。 当实体类中的某些字段类型不是标准的JSON类型,需要转换成JSON能识别的格式时。...使用@ControllerAdvice配合@InitBinder 要对Spring MVC的控制器进行全局的配置,可以使用@ControllerAdvice注解。...然后,在这个类中使用@InitBinder注解的方法来注册自定义的属性编辑器。 注意:@InitBinder主要用于处理表单数据的绑定,对于JSON数据的序列化和反序列化,它并不是最直接的方法。

    16110

    40 个 SpringBoot 常用注解

    使用此注解的示例如下: @CrossOrigin @InitBinder @InitBinder注解用于标注初始化「WebDataBinider」的方法,该方法用于对Http请求传递的表单数据进行处理...下面是使用此注解的示例: @InitBinder Spring Bean 注解 在本小节中,主要列举与Spring Bean相关的4个注解以及它们的使用方式。...此注解可以作用在构造函数、字段和setter方法上。...@Autowired注解标注字段是最简单的,只需要在对应的字段上加入此注解即可,示例代码如下: @Autowired @Primary 当系统中需要配置多个具有相同类型的bean时,...@ConditionalOnClass与@ConditionalOnMissingClass 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。

    31310

    SpringMvc 注解 @InitBinder 表单多对象精准绑定接收

    在需要日期转换的Controller中使用SpringMVC的注解@initbinderSpring自带的WebDateBinder类来操作。...由前台传到controller里的值是String类型的,当往Model里Set这个值的时候,如果set的这个属性是个对象,Spring就会去找到对应的editor进行转换,然后再SET进去。...(另一种解决思路:扩展spring的HandlerMethodArgumentResolver以支持自定义的数据绑定方式。)...另外可以通过DataBinder完成如下几件事情: 1、binder.setAllowedFields("id") : 设置允许的字段,比如我只想设置id,那么可以调用这个方法,那么其他属性会忽略;...binder.setDisallowedFields("id") : 设置不允许的自动,比如我不想设置id,那么可以调用此方法,这个属性将不设置; 3、binder.setRequiredFields() : 表示哪些字段是必填的

    1.7K30

    Spring数据绑定之 WebDataBinder、ServletRequestDataBinder、WebBindingInitializer...---02

    Controller拿到的name=xpy checkFieldMarkers检查请求参数中是否有_开头的,以_开头的请求参数的值,会给出相应类型的默认值 // 处理_的步骤 // 若传入的字段以...的,旨在处理和容器无关的web请求数据绑定. ---- 数据绑定过程中采坑的类型转换 虽然DataBinder内部提供了对类型转换的支持,但是由于某些情况下,不存在对应的自定义转换器,会导致赋值失败,那么这种情况下...Spring读源码系列番外篇08—BeanWrapper没有那么简单–上 ---- 要解决上面这个问题,那么就是需要注册一个可以转换Date的类型转换器进去,有下面几种方法: 可以选择Spring 3.0...interface WebBindingInitializer { void initBinder(WebDataBinder binder); //spring 5.0之后废弃了该方法 @Deprecated...= null) { //通过WebBindingInitializer的initBinder方法,我们可以覆盖掉dataBinder的默认配置 this.initializer.initBinder

    44620

    40 个 常用的 SpringBoot 注解,你知道几个?

    此外,在有必要的时候,可以使用@InitBinder在类中进行全局的配置,还可以使用@ModelAttribute配置与视图相关的参数。...使用此注解的示例如下: ---- @InitBinder @InitBinder注解用于标注初始化WebDataBinider的方法,该方法用于对Http请求传递的表单数据进行处理,如时间格式化、字符串处理等...此注解可以作用在构造函数、字段和setter方法上。...注解标注字段是最简单的,只需要在对应的字段上加入此注解即可,示例代码如下: @Primary 当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。...---- @ConditionalOnClass与@ConditionalOnMissingClass 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。

    69940

    Spring Boot 注解:全家桶快速通

    @InitBinder @InitBinder注解用于标注初始化WebDataBinider的方法,该方法用于对Http请求传递的表单数据进行处理,如时间格式化、字符串处理等。...四、容器配置注解 @Autowired @Autowired注解用于标记Spring将要解析和注入的依赖项。此注解可以作用在构造函数、字段和setter方法上。...作用于字段 @Autowired注解标注字段是最简单的,只需要在对应的字段上加入此注解即可,示例代码如下: ?...@ConditionalOnBean与@ConditionalOnMissingBean 这两个注解属于对象条件注解,根据是否存在某个对象作为依据来决定是否要执行某些配置方法。...@NoRepositoryBean:一般用作父类的repository,有这个注解,spring不会去实例化该repository。 @Column:如果字段名与列名相同,则可以省略。

    51510

    Spring Boot 注解:全家桶快速通

    @InitBinder @InitBinder注解用于标注初始化WebDataBinider的方法,该方法用于对Http请求传递的表单数据进行处理,如时间格式化、字符串处理等。...四、容器配置注解 @Autowired @Autowired注解用于标记Spring将要解析和注入的依赖项。此注解可以作用在构造函数、字段和setter方法上。...作用于字段 @Autowired注解标注字段是最简单的,只需要在对应的字段上加入此注解即可,示例代码如下: ?...@ConditionalOnClass与@ConditionalOnMissingClass 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。...@ConditionalOnBean与@ConditionalOnMissingBean 这两个注解属于对象条件注解,根据是否存在某个对象作为依据来决定是否要执行某些配置方法。

    1.4K30

    40 个 SpringBoot 常用注解,你知道几个?

    此外,在有必要的时候,可以使用@InitBinder在类中进行全局的配置,还可以使用@ModelAttribute配置与视图相关的参数。...使用此注解的示例如下: 图片 @InitBinder @InitBinder注解用于标注初始化WebDataBinider的方法,该方法用于对Http请求传递的表单数据进行处理,如时间格式化、字符串处理等...此注解可以作用在构造函数、字段和setter方法上。...注解标注字段是最简单的,只需要在对应的字段上加入此注解即可,示例代码如下: 图片 @Primary 当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。...@ConditionalOnClass与@ConditionalOnMissingClass 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。

    1.5K51

    Java常用注解

    此外,在有必要的时候,可以使用@InitBinder在类中进行全局的配置,还可以使用@ModelAttribute配置与视图相关的参数。...使用此注解的示例如下: @InitBinder @InitBinder注解用于标注初始化WebDataBinider的方法,该方法用于对Http请求传递的表单数据进行处理,如时间格式化、字符串处理等。...此注解可以作用在构造函数、字段和setter方法上。...作用于构造函数 作用于setter方法 作用于字段 @Primary 当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。...@ConditionalOnClass与@ConditionalOnMissingClass 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。

    74750

    聊聊Spring中的数据绑定 --- WebDataBinder、ServletRequestDataBinder、WebBindingInitializer...【享学Spring

    // @since 1.2 public class WebDataBinder extends DataBinder { // 此字段意思是:字段标记 比如name -> _name // 这对于...field, pv.getValue()); } mpvs.removePropertyValue(pv); } } } } // 处理_的步骤 // 若传入的字段以...来模拟各个字段手动指定默认值 //pvs.add("name", "fsx"); pvs.add("!...可以简单粗暴的理解为:WebBindingInitializer为编码方式,@InitBinder为注解方式(当然注解方式还能控制到只对当前Controller有效,实现更细粒度的控制) 观察发现,Spring...好好掌握这部分内容,这在Spring MVC中结合@InitBinder注解一起使用将有非常大的威力,能一定程度上简化你的开发,提高效率

    1.9K10

    Spring MVC-07循序渐进之验证器 上 (Spring自带的验证框架)

    它决定某一个对象中的所有field是否均是有效的,以及是否遵循某些规则。 那么,思考一个问题如果一个应用程序中即使用了Formatter也使用了validator ,则他们的事件顺序是怎么的呢?...---- Spring验证器 Spring的输入验证甚至早于JSR 303(Java验证规范),尽管对于新的项目,一般建议使用JSR303验证器 为了创建Spring验证器,需要实现org.springframework.validation.Validator..., Errors errors) { // 强制转成校验对象 Product product = (Product) target; // 校验必填字段...验证器的第二种方式: 在Controller中编写initBinder方法,并将验证器传到WebDataBinder ,并调用validate方法 @org.springframework.web.bind.annotation.InitBinder...public void initBinder(WebDataBinder binder){ // this will apply the validator to all request-handling

    63720

    SpringBoot 常用注解

    此外,在有必要的时候,可以使用@InitBinder在类中进行全局的配置,还可以使用@ModelAttribute配置与视图相关的参数。...@InitBinder @InitBinder注解用于标注初始化WebDataBinider的方法,该方法用于对Http请求传递的表单数据进行处理,如时间格式化、字符串处理等。...此注解可以作用在构造函数、字段和setter方法上。 @Primary 当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。...@ConditionalOnClass与@ConditionalOnMissingClass 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。...@ConditionalOnBean与@ConditionalOnMissingBean 这两个注解属于对象条件注解,根据是否存在某个对象作为依据来决定是否要执行某些配置方法。

    8310

    40 个 SpringBoot 常用注解

    此外,在有必要的时候,可以使用@InitBinder在类中进行全局的配置,还可以使用@ModelAttribute配置与视图相关的参数。...使用此注解的示例如下: 图片 @InitBinder @InitBinder注解用于标注初始化WebDataBinider的方法,该方法用于对Http请求传递的表单数据进行处理,如时间格式化、字符串处理等...此注解可以作用在构造函数、字段和setter方法上。...注解标注字段是最简单的,只需要在对应的字段上加入此注解即可,示例代码如下: 图片 @Primary 当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。...@ConditionalOnClass与@ConditionalOnMissingClass 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。

    1.8K42

    肝了!40 个 SpringBoot 常用注解!!

    此外,在有必要的时候,可以使用@InitBinder在类中进行全局的配置,还可以使用@ModelAttribute配置与视图相关的参数。...使用此注解的示例如下: 图片 @InitBinder @InitBinder注解用于标注初始化WebDataBinider的方法,该方法用于对Http请求传递的表单数据进行处理,如时间格式化、字符串处理等...此注解可以作用在构造函数、字段和setter方法上。...注解标注字段是最简单的,只需要在对应的字段上加入此注解即可,示例代码如下: 图片 @Primary 当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。...@ConditionalOnClass与@ConditionalOnMissingClass 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。

    60640
    领券