2010-08-20 6 views
1

오늘 (웹이 아닌 GUI 응용 프로그램의 경우) MVC 패턴을 배우기 시작했으며 데이터 유효성 검사를 수행 할 위치에 대해 몇 가지 질문을했습니다.MVC 유효성 확인 질문

내가 읽은 바로는 대부분의 사람들이 모든 유효성 검사가 컨트롤러에서 이루어져야하며 모델은 데이터의 상태 만 유지해야한다고 말하는 것처럼 보입니다. 그러나 어떤 경우에는 모델에서 검증을하는 것이 더 합리적 일 것입니다.

예를 들어, 클라이언트가 연결하려는 서버의 ipv4 주소를 gui에서 변경한다고 가정하십시오. 우리는 이것이 실제로 임의의 문자가 아닌 ipv4 주소인지 확인하고자합니다. IP 주소가 유효하면 모델의 해당 데이터를 새 IP 주소로 변경하고, 유효하지 않은 경우보기에 오류 (또는 뭔가)를 표시하려고합니다.

컨트롤러에서 확인한 경우 미래에 다른 컨트롤러 /보기를 원한다면 (내가 알 수있는 것부터 매우 가깝게 결합되어 있기 때문에) 두 컨트롤러 모두에이 동일한 인증 코드를 포함시켜야하므로 동일한 코드의 두 부분을 관리해야합니다. 물론 모델에서 검증이 수행 된 것처럼 코드 한 개만 관리하면 버그가 발생하기 쉽습니다.

이렇게해야합니까? 아니면 컨트롤러에서 그렇게하는 것이 더 합리적인가? 또는 모델에서 일부 데이터를 처리해야하고 컨트롤러에서 일부 데이터를 처리해야합니까?

감사합니다.

+1

가능한 복제본 : http://stackoverflow.com/questions/134388/where-do-you-do-your-validation-model- 컨트롤러 또는 뷰 –

답변

-1

나는 모델에서 항상 확인이 필요하다고 생각합니다. 사용자가 필드에서 요구하는 것 이외의 다른 내용을 입력 할 수 없게하기 위해보기에있는 것이 좋을 때도 있습니다. IP 주소 검증과 같은 일반적인 검증은보기 및 모델뿐만 아니라 여러 다른 모델에서 사용할 글로벌/정적/유틸리티 메소드의 훌륭한 후보입니다. 경우에 따라 클라이언트의보기 구성 요소와 GWT 응용 프로그램과 같은 서버 구성 요소간에 공유 될 수도 있습니다.