SpringMVC杂记(四) 数据绑定
SpringMVC杂记(四) 数据绑定
1) 使用java.beans.PropertyEditor接口
如一个表单类
public class UserInfoForm {private String username;private String password;// getter and setter ...}public class UserInfoFormEditor extends PropertyEditorSupport {@Overridepublic String getAsText() {UserInfoForm form = (UserInfoForm) super.getValue();return form.getUsername() + "@@" + form.getPassword();}@Overridepublic void setAsText(String text) throws IllegalArgumentException {UserInfoForm value = new UserInfoForm();String[] infos = text.split("@@");value.setUsername(infos[0]);value.setPassword(infos[1]);setValue(value);}}@Controller@RequestMapping("/test")public class UserInfoController {@InitBinderpublic void initBinder(WebDataBinder binder) {binder.registerCustomEditor(UserInfoForm.class, new UserInfoFormEditor());}}@Controller@RequestMapping("/test")public class UserInfoController implements WebBindingInitializer {@InitBinderpublic void initBinder(WebDataBinder binder, WebRequest request) {binder.registerCustomEditor(UserInfoForm.class, new UserInfoFormEditor());}}public class String2UserInfoFormConverter implements Converter<String, UserInfoForm> {public UserInfoForm convert(String source) {UserInfoForm form = new UserInfoForm();form.setUsername(source.split("@@")[0]);form.setPassword(source.split("@@")[1]);return form;}}<mvc:annotation-driven conversion-service="conversion-service" /><bean id="conversion-service"/></list></property></bean>