这里记录一下常用方法,也是从网上整理的。由于当初查找的比较杂,记不清那些原贴了,勿怪。
去除表单空格:
(这里列了两种方式)
1.第一种
/**
*
* 去除表单提交时字符串的前后空格
*
*/
@Configuration
@ControllerAdvice
public class TrimEditor implements WebBindingInitializer {
@InitBinder
@Override
public void initBinder(WebDataBinder webDataBinder) {
webDataBinder.registerCustomEditor(String.class,new StringTrimmerEditor(false));
}
}
2.第二种
/**
* 去除请求参数中的空格(get参数时去除,原数据并没有做修改)
* @author j
*/
public class ParameterRequestWrapper extends HttpServletRequestWrapper {
public ParameterRequestWrapper(HttpServletRequest servletRequest) {
super(servletRequest);
}
@Override
public String[] getParameterValues(String parameter) {
String[] values = super.getParameterValues(parameter);
if (values == null) {
return new String[0];
}
return Arrays.stream(values).map(String::trim).toArray(String[]::new);
}
@Override
public String getParameter(String parameter) {
String value = super.getParameter(parameter);
return value == null ? null : value.trim();
}
}
@Configuration
public class ParameterTrimFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
ParameterRequestWrapper requestWrapper = new ParameterRequestWrapper((HttpServletRequest) servletRequest);
filterChain.doFilter(requestWrapper, servletResponse);
}
@Override
public void destroy() {
}
}
去除json空格:
这里注意,有些日期格式转换也会用到这个接口类,需要合并到一起,不然该bean可能会不会生效
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
return builder -> builder
.deserializerByType(String.class, new StdScalarDeserializer<String>(String.class) {
@Override
public String deserialize(JsonParser jsonParser, DeserializationContext ctx)
throws IOException {
// 去除前后空格
return org.springframework.util.StringUtils.trimWhitespace(jsonParser.getValueAsString());
}
});
}