diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java index 7c19a9d..1880c88 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java @@ -6,6 +6,7 @@ import com.flyfish.framework.annotations.*; import com.flyfish.framework.domain.base.Qo; import com.flyfish.framework.domain.base.Vo; import com.flyfish.framework.utils.DataUtils; +import com.flyfish.framework.utils.ReflectionUtils; import com.flyfish.framework.utils.StringFormats; import lombok.Data; import lombok.val; @@ -121,6 +122,10 @@ public class BeanProperty { } break; case LIST: + // 是附件,展现附件列表 + ReflectionUtils.getGenericType(descriptor.getPropertyType()) + .filter(property::isAttachment) + .ifPresent(item -> property.prop("attachment", true)); if (null != field) { if (field.isAnnotationPresent(SubBean.class)) { // 尝试获取泛型参数,存在时,赋值子表单 @@ -142,7 +147,7 @@ public class BeanProperty { // 当存在db-ref时,解析为动态数据源 Optional optional = processDbRef(clazz); if (optional.isPresent()) { - if ("Attachment".equals(descriptor.getPropertyType().getSimpleName())) { + if (property.isAttachment(descriptor.getPropertyType())) { property.prop("attachment", true); } else { property.prop("uri", optional.get()); @@ -256,4 +261,8 @@ public class BeanProperty { props.put(key, value); return this; } + + private boolean isAttachment(Class clazz) { + return "Attachment".equals(clazz.getSimpleName()); + } }