You may find it useful where you can’t use Spring MVC’s StringTrimEditor
the trim method
/** * trim string fields to null. * Note: only the root string fields are trimmed. string fields of the * bean's composite fields are let alone. * All reflection related security exceptions are ignored. * * @param bean */ public static void trimRootLevelStringFields(Object bean) { if (bean == null) { return; } Field[] fields = bean.getClass().getDeclaredFields(); if (fields == null) { return; } for (Field f : fields) { if (f.getType().isPrimitive()) { continue; } if (f.getType().equals(String.class)) { try { f.setAccessible(true); String value = (String) f.get(bean); f.set(bean, StringUtils.trimToNull(value)); } catch (IllegalAccessException e) { } } } }
Apply it with all *Manager classes using Spring AOP
@Component @Aspect public class ManagerAspect { @Before("bean(*Manager) && execution(public * *(..))") public void doAdvice(JoinPoint joinPoint) { Object[] args = joinPoint.getArgs(); if (args == null) { return; } for (Object arg : args) { if (arg == null) { continue; } // if it is a request object if (arg.getClass().getSimpleName().endsWith("Request")) { SomeClass.trimRootLevelStringFields(arg); } } } }