복붙노트

[SPRING] Spring MVC에서 빈 폼 입력을 null 문자열로 바꾸는 쉬운 방법이 있습니까?

SPRING

Spring MVC에서 빈 폼 입력을 null 문자열로 바꾸는 쉬운 방법이 있습니까?

저는 Spring MVC와 SimpleJdbcInsert를 사용하여 MySQL 데이터베이스에 객체를 삽입하고 있습니다. 나는 공백 입력을 데이터베이스에서 NULL 대신 NULL로 설정하고 싶습니다. 나는 꽤 많은 필드를 가지고 있으며, 수동으로 모든 값을 검사하지 않고이를 수행 할 수있는 방법을 찾고 있습니다.

감사!

그래서 나는 바보 야. 일부 오류가 결합되어 아래 정답이 정확하지 않다고 믿었습니다. 다음과 같이 PropertyEditorSupport를 작성했습니다.

class StringEditor extends PropertyEditorSupport {

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

}  

두 가지 문제가 있습니다.

도움을 주셔서 감사 드리며 "운영자 오류"에 대해 사과드립니다.

브렛

해결법

  1. ==============================

    1.찾고있는 수업은 다음과 같습니다.

    찾고있는 수업은 다음과 같습니다.

    org.springframework.beans.propertyeditors.StringTrimmerEditor
    

    true로 구성하면 빈 / 공백 문자열을 null로 변환합니다. 바인더에 등록하는 방법은 기본값으로 사용할지 또는 특정보기에만 적용할지에 따라 다릅니다.

    예를 들어 하나의 컨트롤러에 추가 할 수 있습니다.

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

    여기에 지침

  2. ==============================

    2.나는 이것이 오래되었다는 것을 알고 있지만 모든 컨트롤러에 바인더가있는 StringTrimmerEditor를 적용하는 아주 쉬운 방법을 찾을 때까지 약 2 ~ 3 시간이 낭비되었습니다.

    나는 이것이 오래되었다는 것을 알고 있지만 모든 컨트롤러에 바인더가있는 StringTrimmerEditor를 적용하는 아주 쉬운 방법을 찾을 때까지 약 2 ~ 3 시간이 낭비되었습니다.

    다시 한번 : 저는 RTFM을 기억해야합니다.

    Spring 3.2에서 @ ControllerAdvice-annottated 컨트롤러 클래스를 생성하고 @Affe 예제와 같이 @ InitBinder-annotated 메소드를 사용할 수있다.

    http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-ann-initbinder-advice

    다음은 그 예입니다.

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

    누군가가 도움이되기를 바랍니다.

  3. ==============================

    3.아마도 사용자 정의 바인더를 사용할 수 있습니다.

    아마도 사용자 정의 바인더를 사용할 수 있습니다.

  4. ==============================

    4.선택적 필드에 대한 기본값을 NULL로 설정합니다. 실제로 기본적으로 NULL이 아닙니다.

    선택적 필드에 대한 기본값을 NULL로 설정합니다. 실제로 기본적으로 NULL이 아닙니다.

    입력 문자열을 구문 분석 한 다음 채워진 열만 명시 적으로 지정하십시오.

     usingColumns
    

    아, 그리고 항상 당신의 의견을 살피시 길 조언합니다 ...

  5. from https://stackoverflow.com/questions/2977649/is-there-an-easy-way-to-turn-empty-form-inputs-into-null-strings-in-spring-mvc by cc-by-sa and MIT license