Java Spring StringTrimmerEditor将字段置零,而不是禁用

Java Spring StringTrimmerEditor将字段置零,而不是禁用,java,spring,spring-mvc,model-view-controller,trim,Java,Spring,Spring Mvc,Model View Controller,Trim,我正在使用Spring的registerCustomEditor来修剪所有的前导/尾随空间,但我不希望它在特定字段(例如密码字段)上执行 @ControllerAdvice public class MyCustomControllerAdvice { @InitBinder public void setupDefaultInitBinder(WebDataBinder binder) { binder.setDisallowedFields("*passw

我正在使用Spring的
registerCustomEditor
来修剪所有的前导/尾随空间,但我不希望它在特定字段(例如密码字段)上执行

@ControllerAdvice
public class MyCustomControllerAdvice {

    @InitBinder
    public void setupDefaultInitBinder(WebDataBinder binder) {

        binder.setDisallowedFields("*password");  
        binder.registerCustomEditor(String.class, new StringTrimmerEditor(true)); 


    }
}

现在,当我使用
password=[space][space]MyPassword
发布POST时,控制器将获得
null
,而不是您配置的
[space][space]MyPassword

password
是一个不允许的字段,因此它不会被绑定,因此它总是
null
。我明白了。那么我怎样才能实现我的愿望呢?修剪用户在密码字段中键入的任何内容都没有意义,但我确实希望在其他字段(如名称)中修剪,因为空间更多地是用户体验问题。为密码字段注册特定的编辑器,而不是
StringTrimmerEditor
。问题是如何排除密码字段的StringTrimmerEditor?我可以在initBinder中为PasswordController添加一个新的,但仍然会添加ControllerAdvice中的,并且我为password字段声明了register one。这将优先于全球注册的。
@InitBinder   
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));

    PropertyEditorSupport dummyEditor = new PropertyEditorSupport() {

        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            super.setValue(text);
        }

    };

    binder.registerCustomEditor(String.class, "password", dummyEditor);
}