WhiteshipController
지금 만든 Controller는 사실은 원래 계획 했던 컨트롤러는 아닙니다. 원래 계획 했던 컨트롤러는 폼 요청이 여러개가 올 수 있는 컨트롤러 입니다. 하지만 지금 만든 컨트롤러는 폼 처리 요청 하나와 폼처리 요청이 아닌 요청들 다수를 묶을 수 있는 컨트롤러 입니다.
제가 만든 컨트롤러는 즉 위의 그림에 보이듯이 하나의 폼 처리 요청을 하는 "SimpleFormController + 알파" 를 한 것입니다. 따라서 폼 처리 워크 프로우가 필요한 요청 하나와 그렇지 않은 요청들 다수를 하나의 컨트롤러에서 처리할 수 있습니다.
사용하는 방법은 위의 그림과 같이 SimpleFormController를 사용하는 것과 동일하게 사용하면서 MultiActionController를 사용하는 것과도 역시 동일하게 사용할 수 있습니다.
WhiteshipController 자체 구현은 매우 간단하게 했습니다. Copy&Paste로...ㅋ;;
1. SimpleFormController 복사
2. 새로 만든 클래스에 복사
3. Alt + Shift + R을 사용하여 WhiteshipController로 바꾸기
4. MuliActionController 복사
5. 새로 만든 클래스에 복사
6. 4번 과정에서 붙여 넣은 createBinder 메소드 주석처리 또는 사게
7. 새로 만든 클래스에서 handleRequestInternal 재정의
(재정의를 통해서 요청을 처리할 메소드가 있으면 MultiActionController의 요청 처리 플로우를 타고 없으면 SImpleFormController의 요청 처리 플로우를 타도록 약간 수정 해주시면 됩니다.)
8. 구현 끝.. 테스트..
생각해 볼 것
1. 위의 구현 과정 중에 7번을 좀 더 다듬어야 함. 현재는 요청을 처리할 메소드를 못찾은 경우를 아예 SImpleFormController의 워크 플로우를 타도록 대체 했는데 사실 이러면 안됨.. 진짜로 요청을 처리할 메소드를 못찾을 경우도 고려해야 함.
2. 복사, 붙여 넣기로 난장판이 된 코드 다듬기
ps : 아직 제대로 만든 것이 아니라서 공개하기에는 상당히 부끄럽습니다. 나중에 좀 더 다듬게 되면 올리겠습니다.