使用注解@ControllerAdvice和注解@InitBinder对参数进行预处理,代码如下:
/**
* spring请求参数预处理的做法(对参数提前处理)
*/
@ControllerAdvice
public class MyRequestParamHandler {
@InitBinder
public void processParam(WebDataBinder dataBinder){
/*
* 创建一个字符串微调编辑器(可以根据自己的需求自定义返回参数)
*
* 参数{boolean emptyAsNull}: 是否把空字符串("")视为 null
* StringTrimmerEditor trimmerEditor = new StringTrimmerEditor(true);
*
* 删除参数111
* StringTrimmerEditor trimmerEditor = new StringTrimmerEditor("111", true);
*/
StringTrimmerEditor trimmerEditor = new StringTrimmerEditor(true);
/*
* 注册自定义编辑器方法
* 两个参数{Class<?> requiredType, PropertyEditor propertyEditor}
* requiredType:所需处理的类型
* propertyEditor:属性编辑器,StringTrimmerEditor就是propertyEditor的一个子类
*/
dataBinder.registerCustomEditor(String.class, trimmerEditor);
//同上,还可以对参数日期进行预处理
dataBinder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false));
}
}
预处理方式很多,感兴趣的再多了解下。
|