在我们日常项目开发过程中,往往会遇到前端请求参数中有空格的情况,造成数据跟查询结果有出入的情况。那么,怎么快速的去除前端传参中字符串类型参数的前后空格呢?
方案名 | 描述 |
---|---|
方案一 | 实现简单,通过反射写个工具类将实体类中字符类型的变量统一去前后空格即可。 |
使用单个处理方式,当系统设计相关点过多时,需要每个方法中都需要处理,代码臃肿,不美观。笨重,不推荐 | |
方案二 | 过滤器方式编码复杂,实现难度较高,需要考虑点众多,不推荐 |
方案三 | 通过重写序列化方法的方式实现,代码简单,优雅。推荐 |
编写工具类对实体类中相关字符类型进行前后空格处理
/**
* 去除 Bean 中字符串类型字段的前后空格
* @param entity 实体类
* @throws IllegalAccessException 抛出异常
*/
public static void trimEntityFields(Object entity) throws IllegalAccessException {
// 使用功能反射获取实体类中的所有字段
Field[] fields = entity.getClass().getDeclaredFields();
for (Field field : fields) {
// 设置字段可访问,以便读取和设置字段的值
field.setAccessible(true);
// 判断字段是否为 String 类型
if (field.getType() == String.class) {
// 获取字段的值
String value = (String) field.get(entity);
if (StrUtil.isNotBlank(value)) {
// 使用反射设置新的字段值
field.set(entity, value.trim());
}
}
}
}
编写过滤器,对请求参数进行前置处理;
实现方式参考链接:Java 通过 filter 过滤器对请求参数进行处理并修改
通过重写参数序列化方法实现
实现方式参考链接:Spring 对请求参数的优雅处方式(重写序列化方法)