Browse Source

jfinal 4.4

James 6 years ago
parent
commit
88c6b33969

+ 6 - 2
src/main/java/com/jfinal/core/paragetter/Para.java

@@ -26,7 +26,11 @@ import java.lang.annotation.Target;
 @Documented
 public @interface Para {
 	
-	// 不能使用空字符串,因为早已用于:action(@Para("")User user)
+	/**
+	 * 不能使用空字符串:
+	 * 1: 对于 value() 早已用于无 modelName 前缀的场景:action(@Para("")User user)
+	 * 2: 对于 defaultValue() 可用于指定默认值为空字符串:action(@Para(defaultValue = "")String email)
+	 */
 	String NULL_VALUE = "-NULL VALUE-";
 	
     /**
@@ -37,5 +41,5 @@ public @interface Para {
     /**
      * 默认值
      */
-    String defaultValue() default "";
+    String defaultValue() default NULL_VALUE;
 }

+ 6 - 0
src/main/java/com/jfinal/core/paragetter/ParaProcessorBuilder.java

@@ -106,10 +106,16 @@ public class ParaProcessorBuilder {
 				parameterName = para.value().trim();
 			}
 			
+			/*
 			defaultValue = para.defaultValue().trim();
 			if (defaultValue.isEmpty()) {
 				defaultValue = null;
+			}*/
+			// 空字符串 "" 可以成为默认值,空白字符串与前后有空白字符的文本也可以成为默认值: "  "、" ABC "
+			if (!Para.NULL_VALUE.equals(para.defaultValue())) {
+				defaultValue = para.defaultValue();
 			}
+			
 		}
 		Holder holder = typeMap.get(typeClass.getName());
 		if (holder != null) {