使用Springboot自定義轉(zhuǎn)換器實現(xiàn)參數(shù)去空格功能
更新時間:2021年08月14日 11:58:27 作者:CherishLy0
這篇文章主要介紹了使用Springboot自定義轉(zhuǎn)換器實現(xiàn)參數(shù)去空格功能,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
自定義轉(zhuǎn)換器實現(xiàn)參數(shù)去空格
1.自定義轉(zhuǎn)換器類
實現(xiàn)Converter<S, T>類,重寫convert()方法,直接上代碼。
/**
* 自定義轉(zhuǎn)換器
* 去掉前后空格
* @author liuy
* @version 2018年11月13日
*/
public class CustomConverter implements Converter<String, String>{
@Override
public String convert(String source) {
try {
if(source != null){
source = source.trim();
if(!"".equals(source)){
return source;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
2.將轉(zhuǎn)換器交給spring容器處理
@Configuration
public class SpringdataConvert {
@Autowired
private RequestMappingHandlerAdapter requestMappingHandlerAdapter;
@PostConstruct
public void addConversionConfig(){
ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) requestMappingHandlerAdapter.getWebBindingInitializer();
if(initializer.getConversionService()!=null){
GenericConversionService genericConversionService =(GenericConversionService) initializer.getConversionService();
genericConversionService.addConverter(new CustomConverter());
}
}
}
SpringBoot請求參數(shù)過濾空格
1、參數(shù)修改SpaceHttpServletRequestWrapper
public class SpaceHttpServletRequestWrapper extends HttpServletRequestWrapper {
public SpaceHttpServletRequestWrapper(HttpServletRequest servletRequest) {
super(servletRequest);
}
@Override
public String[] getParameterValues(String parameter) {
String[] values = super.getParameterValues(parameter);
if (values == null) {
return new String[0];
}
int count = values.length;
String[] encodedValues = new String[count];
for (int i = 0; i < count; i++) {
encodedValues[i] = values[i].trim();
}
return encodedValues;
}
@Override
public String getParameter(String parameter) {
String value = super.getParameter(parameter);
if (value == null) {
return null;
}
return value.trim();
}
}
2、空格過濾器
public class SpaceFilter implements Filter {
private FilterConfig filterConfig;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws
IOException, ServletException {
filterChain.doFilter(new SpaceHttpServletRequestWrapper(
(HttpServletRequest) servletRequest), servletResponse);
}
@Override
public void destroy() {
this.filterConfig = null;
}
}
3、過濾器初始化
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
@Bean
public FilterRegistrationBean spaceFilter() {
FilterRegistrationBean fitler = new FilterRegistrationBean();
fitler.setFilter(new SpaceFilter());
fitler.addUrlPatterns("/*");
fitler.setName("SpaceFilter");
fitler.setDispatcherTypes(DispatcherType.REQUEST);
return fitler;
}
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
全面匯總SpringBoot和SpringClould常用注解
Java注解是附加在代碼中的一些元信息,用于一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能,這篇文章就帶你來了解一下2021-08-08

