Inflearn Community Q&A
view name 리턴에 대해
Written on
·
281
0
handler단에서 String으로 뷰 파일의 path를 return하는데,
강의 때도 말씀해주신 것처럼 String으로 작성한다는 것 자체가
위험성이 있다고 생각이 드는데요, 혹시 이것을 보완하기 위해
자동으로 뷰 네임과 매칭되는 상수를 참조할 수 있다던가 하는
방법이 있을까요?
Answer 2
0
음.. 각각의 핸들러에서는 그럼 저 상수를 어떤 규칙으로 참조해야 하는걸까요? 원하신다면 얼마든지 구현할 수 있는데 로직이 분명해야 구현할 수 있겠죠?
0
음.. 핸들러의 리턴 타입을 void로 사용하고 뷰 이름에 해당하는 문자열을 리턴하지 않으면 스프링 MVC가 요청 URI 정보를 기반으로 뷰 이름을 추측해서 뷰를 찾아내는 방법이 있기는 하지만 유연하질 않아서 잘 안쓰이고요.
말씀하시는 "자동으로 뷰 네임과 매칭되는 상수를 참조"한다는 것이 구체적으로 어떤건지 코드와 함꼐 설명해 주시면 좀 더 이해하기 좋을 것 같네요.
음.. 가령
templates/events/list.html과 templates/form/name.html 파일이 생성되었을 때 아래와 같이
ViewFileMapping과 같은 형태의 클래스를 스프링에서 만들어
"/events/list" 대신 ViewFileMapping.EVENTS_LIST로 사용하는 방식이 되겠습니다.
아마 컴파일 타임에는 이렇게 하는것이 불가능할 것 같기는 한데 혹시나 이런 방법은 없는가해서 질문을 드립니다.
좀 더 궁극적인 질문은 "컴파일 타임에 뷰를 실수 없이 매칭할 수 있는 방법이 있는가?"가 될 것 같습니다.
감사합니다!






규칙이 명확하게 있다면 구현은 가능한거군요.
나중에 이와 관련해서 규칙을 명확하게 세워보고 직접 구현해보도록 하겠습니다.
감사합니다!