SpringBoot去掉传入参数的前后空格

最近同事问我一个问题,对于字符串的参数在前端去掉前后空格还是在后端做?对于自己之前写的代码,不管前端怎么处理,后端都会去掉前后空格,但是如果传递的是一个对象,里面的属性处理起来比较麻烦。一开始想到的是 Spring 的转换器,但是只能去掉单个参数的空格,对于对象中的属性还是无法解决,在 stackoverflow 上找到了解决方法,主要是重写了 Jackson 的 deserialize 方法来解决。

@Component
public class StringTrimModule extends SimpleModule {

    public StringTrimModule() {
        addDeserializer(String.class, new StdScalarDeserializer<String>(String.class) {
            @Override
            public String deserialize(JsonParser jsonParser, DeserializationContext ctx) throws IOException {
                String value = jsonParser.getValueAsString();
                if (StringUtils.isEmpty(value))
                    return value;
                return value.trim();
            }
        });
    }
}

参考地址: Can Jackson be configured to trim leading/trailing whitespace from all string properties?

添加新评论