Spring之InitBinder的功能简介说明
下文笔者讲述Spring中InitBinder注解的功能简介说明,如下所示
InitBinder注解的功能
@InitBinder注解:
1.用于初始化绑定器Binder
Binder用于绑定数据
2.将请求参数转成数据对象
从上面的表述上,我们可以得出InitBinder注解的功能:
类型转换和参数绑定
@InitBinder使用场景说明
@InitBinder注解放在@Controller方法上: 为当前控制器注册一个属性编辑器或其他
@InitBinder注解的示例
类型转换
将“2023-11-08 22:16:18”
字符串转为java.util.Date对象
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
参数绑定
<form action="/test" method="post">
name: <input type="text" name="customer.name"> <br>
age: <input type="text" name="customer.customerId"> <br>
name: <input type="text" name="goods.title"> <br>
age: <input type="text" name="goods.price"> <br>
<input type="submit">
</form>
//将以customer为前缀的参数绑定到Customer对象上
//将以goods为前缀的参数绑定到Goods对象上
@InitBinder("customer")
public void initCustomer(WebDataBinder binder) {
binder.setFieldDefaultPrefix("customer.");
}
@InitBinder("goods")
public void initGoods(WebDataBinder binder) {
binder.setFieldDefaultPrefix("goods.");
}
@PostMapping("/test")
public ModelAndView test(Customer customer, @ModelAttribute("goods") Goods goods, ModelAndView mv) {
// do something
return mv;
}
//@ModelAttribute("goods") 中“goods”
//用于设置@InitBinder("goods")
//在initGoods方法中
//使用goods为前缀的参数封装为名为goods 的对象;
//在test方法中
//使用@ModelAttribute("goods") 来接收名等于goods对象
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


