@@ -69,7 +69,7 @@ public static AppInputParam from(Map<String, Object> rawParam) {
6969 .isRequired (cast (rawParam .getOrDefault ("isRequired" , true )))
7070 .isVisible (cast (rawParam .getOrDefault ("isVisible" , true )))
7171 .stringMaxLength (appearance .getStringMaxLength ())
72- .validator (createValidator (appearance , type ))
72+ .validator (createValidator (appearance , type , rawParam ))
7373 .build ();
7474 }
7575
@@ -105,11 +105,11 @@ public void validate(Map<String, Object> dataMap) {
105105 /**
106106 * 根据外观配置创建校验器
107107 */
108- private static Predicate <Object > createValidator (AppearanceConfig config , String type ) {
108+ private static Predicate <Object > createValidator (AppearanceConfig config , String type , Map < String , Object > rawParam ) {
109109 String displayType = config .getDisplayType ();
110110
111111 if (displayType == null ) {
112- return createDefaultValidator (type );
112+ return createDefaultValidator (type , rawParam );
113113 }
114114
115115 return switch (displayType ) {
@@ -118,7 +118,7 @@ private static Predicate<Object> createValidator(AppearanceConfig config, String
118118 case "dropdown" -> createDropdownValidator (config .getOptions ());
119119 case "switch" -> createBooleanValidator ();
120120 case "multiselect" -> createArrayValidator (config .getOptions ());
121- default -> createDefaultValidator (type );
121+ default -> createDefaultValidator (type , rawParam );
122122 };
123123 }
124124
@@ -182,7 +182,7 @@ private static Predicate<Object> createBooleanValidator() {
182182 return value -> value instanceof Boolean ;
183183 }
184184
185- private static Predicate <Object > createDefaultValidator (String type ) {
185+ private static Predicate <Object > createDefaultValidator (String type , Map < String , Object > rawParam ) {
186186 if (type == null ) {
187187 return value -> false ; // 如果类型未定义,则校验失败
188188 }
@@ -192,7 +192,11 @@ private static Predicate<Object> createDefaultValidator(String type) {
192192 if (!(value instanceof String str )) {
193193 return false ;
194194 }
195- return lengthBetween (str , 1 , DEFAULT_STRING_MAX_LENGTH , true , true );
195+ return lengthBetween (str ,
196+ 1 ,
197+ cast (rawParam .getOrDefault ("stringMaxLength" , DEFAULT_STRING_MAX_LENGTH )),
198+ true ,
199+ true );
196200 };
197201
198202 case "integer" -> value -> {
0 commit comments