本文共 1003 字,大约阅读时间需要 3 分钟。
1.自己定义一个类,这个类实现PropertyEditor接口,其实就是实现这个接口中的setAsText和getValue
–1.1 springmvc会调用setAsText方法将request中对应的值传递进去 –1.2 springmvc会调用getValue方法,将拿到的值赋值到controller中的form实体类中下面实例显示的是无论前台传递什么参数,最终User的name都是"小刚"
public class MyStringPropertyEditor implements PropertyEditor{ @Override public Object getValue() { return "小刚"; } @Override public void setAsText(String text) throws IllegalArgumentException { System.out.println("request中传递过来的值:"+text); } //省略其他Override方法}
controller
@Controller@RequestMapping("initbinder")public class Controller { @InitBinder public void aa(WebDataBinder binder) { MyStringPropertyEditor sdf=new MyStringPropertyEditor(); //表示User121中如果是String类型,就用MyStringPropertyEditor属性编辑器 binder.registerCustomEditor(String.class, sdf); } @ResponseBody @RequestMapping("test") public String aa(User121 user) { //无论URL传递什么,此处都会打印"小刚" System.out.println("controller:"+user.getName()); return "GG"; }}
URL中虽然写的是周传雄,但是进入到controller中,依然变成了小刚
http://localhost:8080/initbinder/test?name=周传雄
转载地址:http://lthws.baihongyu.com/