SpringMVC 注解(六) @InitBinder 注解

springmvc @InitBinder 注解

  • @InitBinder

    用法类型转换,将前台传递的String类型表示的其他类型参数进行转换(例如Date)参数

    用法:

    1.initBinder 注解的参数返回值必须时void
    2.注解的方法参数类型一般时WebDataBinder
    3.在requestMapping 注解的方法直接引入需要的类型而前台传递的是String类型需要解析的时候,就可以在外部添加一个用@InitBinder 注解的方法,传入WebDataBinder 参数,用来解析

参考: https://www.cnblogs.com/myhome-1/p/6260018.html

例如:

@Controller
public class FirstController {
     /**
      * 
      * @param binder
      */
     @InitBinder
    public void initBinder(WebDataBinder binder){
        binder.registerCustomEditor(Date.class,new MyDateEditor());
        System.out.println("===============11111");
         
    }
      
    @RequestMapping("/first.do")
    //类型转化工作一定是在真正的handler方法执行前执行的。
    public String doFirst(Date birthday,int age) throws Exception{
        System.out.println(birthday+"===============");
        System.out.println(age+"===============");
        return "/WELCOME.jsp";
    }
     
     
}
  • 说明:

1.前台传递过来birthday 参数是String类型的,而这里路径映射的方法的参数是Date类型,因此如果不进行转换,就会出异常,
2.而此时在类中配置一共@InitBinder注解的方法,在里面设置转换器,Spring 在访问方法的时候,就会自动将配置的类型转换为需要的类型

  • 还可与 @ControllerAdvice 配合配置 全局的参数绑定

猜你喜欢

转载自blog.csdn.net/kzcming/article/details/84895319