Browse Source

优化异常国际化

zhouhao 3 years ago
parent
commit
5f515953a5

+ 5 - 4
hsweb-core/src/main/java/org/hswebframework/web/exception/I18nSupportException.java

@@ -47,11 +47,12 @@ public class I18nSupportException extends RuntimeException {
         this.i18nCode = code;
     }
 
+    public String getOriginalMessage() {
+        return super.getMessage();
+    }
+
     @Override
     public String getMessage() {
-        if (Objects.equals(super.getMessage(), this.getI18nCode())) {
-            return getLocalizedMessage();
-        }
         return super.getMessage() != null ? super.getMessage() : getLocalizedMessage();
     }
 
@@ -61,7 +62,7 @@ public class I18nSupportException extends RuntimeException {
     }
 
     public String getLocalizedMessage(Locale locale) {
-        return LocaleUtils.resolveMessage(i18nCode, locale, getMessage(), args);
+        return LocaleUtils.resolveMessage(i18nCode, locale, getOriginalMessage(), args);
     }
 
     public final Mono<String> getLocalizedMessageReactive() {

+ 1 - 1
hsweb-core/src/main/java/org/hswebframework/web/exception/ValidationException.java

@@ -76,7 +76,7 @@ public class ValidationException extends I18nSupportException {
         if (propertyI18nEnabled && "validation.property_validate_failed".equals(getI18nCode()) && getArgs().length > 0) {
             Object[] args = getArgs().clone();
             args[0] = LocaleUtils.resolveMessage(String.valueOf(args[0]), locale, String.valueOf(args[0]));
-            return LocaleUtils.resolveMessage(getI18nCode(), locale, getMessage(), args);
+            return LocaleUtils.resolveMessage(getI18nCode(), locale, getOriginalMessage(), args);
         }
         return super.getLocalizedMessage(locale);
     }