首页
学习
活动
专区
工具
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.2K20

掌握@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的使用:它可以放入参时接收指定的字段;也可以让返回值中敏感字段(如密码、盐值等)不予返回,可做到非常灵活的配置和管理,实现一套代码多处使用的目的,提高集成程度。

6.9K32

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.6K30

40 个 SpringBoot 常用注解

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

30110

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

38720

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

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

61340

Spring Boot 注解:全家桶快速通

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

47810

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

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

1.4K51

Spring Boot 注解:全家桶快速通

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

1.4K30

聊聊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.7K10

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

58620

SpringBoot 常用注解

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

6210

Java常用注解

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

70750

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 这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。

55440

Spring Boot 注解:快速掌握全家桶的最佳实践

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

89330
领券