@InitBinder

    8

@InitBinder是Spring MVC提供的一个注解,主要用于自定义请求参数的绑定规则。它可以:

  1. 注册自定义的编辑器
  2. 设置必填字段
  3. 设置允许的字段
  4. 设置日期格式等

@InitBinder的value参数

@InitBinder的value参数用于指定这个绑定器要作用的目标对象。有以下几种使用方式:

// 1. 不指定value,对所有请求参数生效
@InitBinder
public void initBinder(WebDataBinder binder) {
    // ...
}

// 2. 指定具体的参数名称,只对该参数生效
@InitBinder("user")
public void initUser(WebDataBinder binder) {
    // 只对名为"user"的参数生效
}

// 3. 指定多个参数名称
@InitBinder({"user", "admin"})
public void initUsers(WebDataBinder binder) {
    // 对名为"user"和"admin"的参数都生效
}

// 4. 指定ModelAttribute注解的对象
@InitBinder("getAllCompetitionsReq")
public void initGetAllCompetitionsReq(WebDataBinder binder) {
    // 对@ModelAttribute标注的GetAllCompetitionsReq类型参数生效
}

常见使用场景

  1. 日期格式转换:
@InitBinder
public void initBinder(WebDataBinder binder) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
  1. 字符串去空格:
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}
  1. 设置允许的字段:
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setAllowedFields("username", "email");  // 只允许这些字段被绑定
}
  1. 设置必填字段:
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setRequiredFields("username", "password");  // 这些字段必须填写
}

Comments | 0 评论
消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息