javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL does not work anymore since Java EE 7 / EL 3.0

前端 未结 5 2209
遥遥无期
遥遥无期 2020-11-30 12:07

    javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
    true         


        
5条回答
  •  春和景丽
    2020-11-30 12:21

    Fixed with a custom resolver:

    faces-config.xml:

    
         my.package.EmptyNullStringResolver
    
    

    EmptyNullStringResolver.java:

    /**
     * @author pg
     */
    public class EmptyNullStringResolver extends ELResolver {
    
        @Override
        public Class getCommonPropertyType(ELContext context, Object base) {
            return String.class;
        }
    
        @Override
        public Iterator getFeatureDescriptors(ELContext context, Object base) {
            return null;
        }
    
        @Override
        public Class getType(ELContext context, Object base, Object property) {
            return null;
        }
    
        @Override
        public Object getValue(ELContext context, Object base, Object property) {
            return null;
        }
    
        @Override
        public boolean isReadOnly(ELContext context, Object base, Object property) {
            return true;
        }
    
        @Override
        public void setValue(ELContext context, Object base, Object property, Object value) {
        }
    
        @Override
        public Object convertToType(ELContext context, Object obj, Class targetType) {
            if (String.class.equals(targetType) && obj instanceof String && ((String) obj).trim().isEmpty()) {
                context.setPropertyResolved(true);
            }
            return null;
        }
    }
    

提交回复
热议问题