diff --git a/feign-form/src/main/java/feign/form/util/PojoUtil.java b/feign-form/src/main/java/feign/form/util/PojoUtil.java index e2b89a5..ecd05d1 100644 --- a/feign-form/src/main/java/feign/form/util/PojoUtil.java +++ b/feign-form/src/main/java/feign/form/util/PojoUtil.java @@ -78,7 +78,20 @@ public static Map toMap (@NonNull Object object) { ? field.getAnnotation(FormProperty.class).value() : field.getName(); - result.put(propertyKey, fieldValue); + //fix missing form field subObject problem + if (fieldValue instanceof Collection) { + int i = 0; + for (Object o : ((Collection) fieldValue)) { + Map map = toMap(o); + for (Map.Entry entry : map.entrySet()) { + result.put(propertyKey + "[" + i + "]." + entry.getKey(), entry.getValue()); + } + i++; + } + } else { + result.put(propertyKey, fieldValue); + } + } return result; }