2014-02-20 5 views
0

하위 레코드 (복잡한 워크 플로, 미안)를 삭제하기 위해 현재 양식을 제출해야하는 웹 플로우 응용 프로그램을 다루고 있습니다.스프링 바인딩 - 숫자 입력을 다루고 있습니까?

사용자가 정크 데이터를 양식에 입력 한 다음 "삭제"버튼을 누르면 바인딩 및/또는 유효성 검사가 실패하고 양식이 제출되지 않습니다.

따라서 정크 데이터를 입력하면 레코드를 삭제할 수 없습니다.

웹 양식에서 "정크"데이터를 입력하는 사용자, 특히 숫자 필드에 숫자가 아닌 데이터를 입력하는 사용자를 상대하는 가장 좋은 방법은 무엇입니까? 사용자가 myName 분야에서 정크를 입력

public class MyFormInfo implements Serializable { 
    private String myName; 
    private Integer myNumber; 
} 

경우 내가 검증하는 동안 그것을 무시할 수 있습니다 : 나는 봄 폼 지원이 보이는 개체가 있습니다. 그러나 그들이 myNumber 필드에 정크를 입력하고 바인딩이 실패하면, 나는 그것을 잡을 좋은 방법이 없으며 양식을 제출할 수 없습니다.

아무도이 문제를 해결할 좋은 방법이 있습니까?

답변

1

answer도 살펴 보시고, 요약하면 변환시 불일치 유형의 경우 오류 메시지를 추가하는 좋은 방법이 없습니다.

사용할 수있는 메커니즘 (속성 편집기, 변환기, bean 유효성 검사)은 형식 불일치를 처리하기위한 것이 아닙니다.

가장 좋은 해결책은 숫자 입력 만 허용하는 일부 필드 마스크를 통해 Javascript를 통해 클라이언트 쪽에서 유효성 검사를 수행하는 것입니다. 그런 다음 서버에서 유형 불일치가 버그의 경우에만 발생하므로 처리되지 않은 오류가 용인 될 수 있습니다. 서버에서이 작업을 수행하는

이는 DTO에 문자열 속성을 추가하고 콩 유효성 검사를 적용 할 수있다 : 페이지에 오류 메시지를 추가 할 수 있습니다

다음
@Pattern(regexp = "{A-Za-z0-9}*") 
String numericField; 

콩 검증을 통해를 참조하십시오 이 example.

+0

고마워, 그건 내가 두려워했던 것 같아. 방금 몇 가지 확인을 원했습니다. – user3120173

관련 문제