我是靠谱客的博主 温柔草莓,这篇文章主要介绍@InitBinder注解使用,现在分享给大家,希望可以做个参考。

1. @InitBinder 是什么

@InitBinder用于在@Controller中标注于方法,表示为当前控制器注册一个属性编辑器或者其他,只对当前的Controller有效。

用途一: 类型转换

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@RequestMapping("test") @Controller public class TestController { @InitBinder public void InitBinder(WebDataBinder binder){ DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); CustomDateEditor dateEditor = new CustomDateEditor(df, true); binder.registerCustomEditor(Date.class,dateEditor); } @RequestMapping(value="/param",method=RequestMethod.GET) @ResponseBody public Map<String,Object> getFormatData(Date date) throws ParseException{ Map<String,Object> map = new HashMap<String, Object>(); map.put("name", "zhangsan"); map.put("age", 22); map.put("date",date); return map; } }

用途二: 参数绑定

jsp页面

复制代码
1
2
3
4
5
6
7
8
9
<form action="/testBean" method="post"> name: <input type="text" name="u.name"> <br> age: <input type="text" name="u.age"> <br> name: <input type="text" name="s.name"> <br> age: <input type="text" name="s.age"> <br> <input type="submit"> </form>

Controller

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@InitBinder("user") public void init1(WebDataBinder binder) { binder.setFieldDefaultPrefix("u."); } @InitBinder("stu") public void init2(WebDataBinder binder) { binder.setFieldDefaultPrefix("s."); } @RequestMapping("/testBean") public ModelAndView testBean(User user, @ModelAttribute("stu") Student stu) { System.out.println(stu); System.out.println(user); String viewName = "success"; ModelAndView modelAndView = new ModelAndView(viewName); modelAndView.addObject("user", user); modelAndView.addObject("student", stu); return modelAndView; }

@InitBinder("user")括号内的参数为类的首字母小写(默认命名规则),也可以用@ModelAttribute("stu")做限定.


最后

以上就是温柔草莓最近收集整理的关于@InitBinder注解使用的全部内容,更多相关@InitBinder注解使用内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部