diff --git a/flyfish-data/src/main/java/com/flyfish/framework/annotations/Property.java b/flyfish-data/src/main/java/com/flyfish/framework/annotations/Property.java index ca31816..bb0a172 100644 --- a/flyfish-data/src/main/java/com/flyfish/framework/annotations/Property.java +++ b/flyfish-data/src/main/java/com/flyfish/framework/annotations/Property.java @@ -75,7 +75,15 @@ public @interface Property { /** * 表单注解 + * * @return 表单注解,仅用于构造器 */ FormItem[] form() default {}; + + /** + * 表单映射 + * + * @return 映射的注解,仅用于构造器 + */ + MappedTo[] mapping() default {}; } 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 4b2e8fb..73b0e83 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 @@ -143,7 +143,6 @@ public class BeanProperty { MergedAnnotation mapping = annotations.get(MappedTo.class); if (mapping.isPresent()) { property.extra.put("mapping", mapping.asMap()); - MappedTo mappedTo = mapping.synthesize(); } // 优雅的处理校验 property.setValidation(ValidationCandidate.produce(annotations)); @@ -321,6 +320,10 @@ public class BeanProperty { if (ArrayUtils.isNotEmpty(prop.form())) { applyFormItem(property, prop.form()[0]); } + // 处理额外的映射 + if (ArrayUtils.isNotEmpty(prop.mapping())) { + property.extra.put("mapping", MergedAnnotations.from(prop.mapping()).get(MappedTo.class).asMap()); + } // 设置标题 property.title = prop.title(); } else {