- Enum Type
EnumEditor:
import java.beans.PropertyEditorSupport;
@SuppressWarnings("unchecked")
public class EnumEditor extends PropertyEditorSupport {
private Class clazz;
public EnumEditor(Class clazz) {
this.clazz = clazz;
};
public String getAsText() {
return (getValue() == null ? "" : ((Enum) getValue()).name());
}
public void setAsText(String text) throws IllegalArgumentException {
setValue(Enum.valueOf(clazz, text));
}
EnumClass:
public enum EnumClass{
RED, GREEN, BLUE
}
Register in controller:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(EnumClass.class,
new EnumEditor(EnumClass.class));
}
- Int Type
import java.beans.PropertyEditorSupport;
@SuppressWarnings("unchecked")
public class IntEditor extends PropertyEditorSupport {
private Class clazz;
public IntEditor(Class clazz) {
this.clazz = clazz;
}
public String getAsText() {
Integer value = (Integer) getValue();
if (value.intValue() == 0) {
return "";
} else {
return value.toString();
}
}
public void setAsText(String value) {
if (value != null && value.length() > 0) {
setValue(Integer.parseInt(value));
} else {
setValue(0);
}
}
Register in controller:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(int.class, new IntEditor(int.class));
}
- Date Type
@SuppressWarnings("rawtypes")
public class DateEditor extends PropertyEditorSupport {
private Class clazz;
public DateEditor(Class clazz) {
this.clazz = clazz;
}
public void setAsText(String value) {
try {
setValue(new SimpleDateFormat("yyyy-MM-dd").parse(value));
} catch (ParseException e) {
setValue(null);
}
}
public String getAsText() {
return new SimpleDateFormat("yyyy-MM-dd hh:mm a").format((Date) getValue());
}
public void setClazz(Class clazz) {
this.clazz = clazz;
}
public Class getClazz() {
return clazz;
}
}
Register in controller:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new DateEditor(Date.class));
}
No comments:
Post a Comment