diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/script/ScriptFactory.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/script/ScriptFactory.java index 4d07ffb32407506c13609a1fe1af29aab5d89b42..ca66cccba8041644daf48444d7b089bcb2d509d5 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/script/ScriptFactory.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/script/ScriptFactory.java @@ -264,8 +264,10 @@ public class ScriptFactory { } } } else { - list.add(PropertyTools.getOrElse(som, JpaObject.DISTINGUISHEDNAME, String.class, "")); + list.add(PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME, String.class, "")); } + } else { + list.add(Objects.toString(o, "")); } } return list; diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/PropertyTools.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/PropertyTools.java index 1c3c363ad87962c37abb74ed36bc80b0a8f70979..b1acab557970a011c4de125ad65ea0ee88cbdb24 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/PropertyTools.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/PropertyTools.java @@ -9,21 +9,27 @@ public class PropertyTools { @SuppressWarnings("unchecked") public static T getOrElse(Object bean, String name, Class cls, T defaultObject) throws Exception { if (null != bean) { - if (PropertyUtils.isReadable(bean, name)) { + try { + // 如果使用PropertyUtils.isReadable那么Nested就会失效,无法获取map类型中的值. + // Object o = PropertyUtils.getNestedProperty(bean, name); Object o = PropertyUtils.getProperty(bean, name); if (null != o) { return (T) o; } - } else { - Field field = FieldUtils.getField(bean.getClass(), name, true); - if (null != field) { - Object o = FieldUtils.readField(field, bean, true); - if (null != o) { - return (T) o; - } + } catch (NoSuchMethodException e) { + // java.lang.NoSuchMethodException: Unknown property 'abc' on class 'class + // java.lang.Object' + // nothing pass + } + Field field = FieldUtils.getField(bean.getClass(), name, true); + if (null != field) { + Object o = FieldUtils.readField(field, bean, true); + if (null != o) { + return (T) o; } } } return defaultObject; } -} + +} \ No newline at end of file