这是一个工作示例(与 zagyi 的答案相关)。应用程序使用 Spring Roo,因此使用 aspectj。
@FacesConverter("example.entity.converter")
@Configurable
public class EntityConverter implements Converter {
@Resource
MyDAO dao;
@Override
public Object getAsObject(FacesContext context, UIComponent component,
String value) {
Entity obj;
try {
obj = dao.getEntity(Long.valueOf(value));
} catch( NumberFormatException e ) {
throw new ConverterException( message );
}
return obj;
}
@Override
public String getAsString(FacesContext context, UIComponent component,
Object value) {
Entity obj = (Entity) value;
return (obj != null) ? obj.getId().toString() : "";
}
}
道类
@Repository("myDAO")
public class MyDAOImpl implements MyDAO {
...
}