Существует ли простой способ превратить пустые исходные данные формы в пустые строки в Spring MVC?

Я использую Spring MVC и SimpleJdbcInsert для вставки объектов в базу данных MySQL. Я хотел бы установить пустой вход на NULL в базе данных, а не ''. У меня есть довольно много полей, и я надеюсь на способ сделать это, вручную не проверяя каждое значение.

Спасибо!


ОБНОВЛЕНИЕ

Таким образом, я - идиот. Несколько ошибок, объединенных с моей стороны, привели меня полагать, что корректные ответы ниже не были корректны. Я записал PropertyEditorSupport как это:

class StringEditor extends PropertyEditorSupport {

    public void setAsText(String text) {
        String value = text.trim();
        if ("" == value) {
            setValue(null);  
        } else {  
            setValue(value);  
        }
    }

}  


Существует две проблемы:

  1. никакой getAsText, таким образом, моя форма становилась заполненной с "пустыми" строками!
  2. моей проверкой равенства является C++, не Java. Когда я попробовал рекомендуемый метод set, я просто перезагрузил сообщение, которое уже содержало "пустые" строки. После того как я убрал все, что, все начало работать.

Спасибо за справку, и жаль о моей "ошибке оператора"!

Brett

20
задан informatik01 27 May 2019 в 17:00
поделиться

3 ответа

Класс, который вы ищете:

org.springframework.beans.propertyeditors.StringTrimmerEditor

Если вы создадите его с истиной , он преобразует пустые / пробельные строки в null. Как зарегистрировать его в подшивке, зависит от того, хотите ли вы, чтобы он использовался по умолчанию или применялся только к определенным представлениям.

например, на одном контроллере вы можете просто добавить сюда

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}

инструкции

52
ответ дан 29 November 2019 в 22:46
поделиться

Возможно, вы можете использовать пользовательский Binder

2
ответ дан 29 November 2019 в 22:46
поделиться

Установите значение по умолчанию для дополнительных полей в NULL - на самом деле, это не NULL по умолчанию?

Проанализируйте входную строку, а затем явно укажите только заполненные столбцы с помощью

 usingColumns

ой, и я бы посоветовал всегда дезинфицировать ваш вклад ...

0
ответ дан 29 November 2019 в 22:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: