[SPRING] 비어있는 Java / Spring 양식 입력을 null 문자열로 변환하는 쉬운 방법이 있습니까?
SPRING비어있는 Java / Spring 양식 입력을 null 문자열로 변환하는 쉬운 방법이 있습니까?
Java에서 빈 양식 입력을 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);
}
}
}
두 가지 문제 - 먼저 getAsText가 없으므로 "null"문자열로 양식이 채워집니다! 둘째, 내 동등성 검사는 java가 아니라 C ++입니다. 추천 된 설정기를 시도했을 때 이미 "null"문자열이 포함 된 게시물을 다시로드했습니다. 모든 것을 정리하면 모든 것이 작동하기 시작합니다. 도움을 주셔서 감사 드리며 "운영자 오류"에 대해 사과드립니다.
브렛
해결법
-
==============================
1.찾고있는 수업은 다음과 같습니다.
찾고있는 수업은 다음과 같습니다.
org.springframework.beans.propertyeditors.StringTrimmerEditor
true로 구성하면 빈 / 공백 문자열을 null로 변환합니다. 바인더에 등록하는 방법은 기본값으로 사용할지 또는 특정보기에만 적용할지에 따라 다릅니다.
예를 들어 하나의 컨트롤러에 추가 할 수 있습니다.
@InitBinder public void initBinder(WebDataBinder binder) { binder.registerCustomEditor(String.class, new StringTrimmerEditor(true)); }
여기에 지침
-
==============================
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.아마도 사용자 정의 바인더를 사용할 수 있습니다.
아마도 사용자 정의 바인더를 사용할 수 있습니다.
-
==============================
4.선택적 필드의 기본값을 NULL로 설정합니다. 실제로 기본적으로 NULL이 아닙니다.
선택적 필드의 기본값을 NULL로 설정합니다. 실제로 기본적으로 NULL이 아닙니다.
입력 문자열을 구문 분석 한 다음 채워진 열만 명시 적으로 지정하십시오.
usingColumns
오, 항상 당신의 의견을 위생적으로 정리하도록 조언합니다 ...
from https://stackoverflow.com/questions/2977649/is-there-an-easy-way-to-turn-empty-java-spring-form-input-into-null-strings by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 다른 비동기 메소드에서 호출 된 Spring 비동기 메소드 (0) | 2019.01.15 |
---|---|
[SPRING] Spring 데이터 저장소에서 getOne (...)이 EntityNotFoundException을 던지지 않는 이유는 무엇입니까? (0) | 2019.01.14 |
[SPRING] Spring Validator 구현을위한 JUnit 테스트 작성하기 (0) | 2019.01.14 |
[SPRING] Spring 부트에서 애플리케이션 컨텍스트를 사용하여 Bean을 얻는 방법 (0) | 2019.01.14 |
[SPRING] 일반 ResponseEntity <T>를 가져올 수 없습니다. 여기서 T는 제네릭 클래스 "SomeClass <SomeGenericType>"입니다. (0) | 2019.01.14 |