2021. 7. 5. 07:04ㆍspring
이 것도 인터넷을 참 많이 뒤져보고, 다른 스프링 배우는 사람들이나 알려주시는 분들에게 물어봤는데 인터널리소스뷰리졸버 같은 경우는 그냥 모든 컨트롤러에 한번에 작용하시는 방식이라고 하더라...
멀티리졸버 구현을 위해선 인터널리소스뷰리졸버를 사용하지않고 개인이 커스텀 리졸버를 만든 후, 여러개의 리졸버의 빈객체를 생성한 후, 리졸버간에 순위를 둬서 하나의 리졸버가 파일을 찾지못해서 null값을 반환하면 다른 리졸버가 작동하는 방식으로 구현하면 된다고 하는데, 급하게 배우기에는 이해할 시간도 부족해서 그냥 편법이라고 불리는 방식을 사용했다.
init 메소드가 호출되는 컨텍스트xml파일 |
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/" /> </beans:bean> |
원래 예제에선 serfix도 적혀있었는데(.jsp) 이전에 썼던 글에도 있는데 .do 매핑 참조할 때 이런방법 저런방법 찾다가 이게 될까 하면서도 리졸버에 .jsp를 지우고 컨트롤러에 반환값에 전부 .jsp를 붙였었는데, 해결하고 나서 되돌릴려니까 안되는 것도 아니고 또 전부 다 고치기 귀찮아서 안돌려놨다.
return "/board/"+"changeBoard.jsp"; |
return "/shop/"+"index.jsp"; |
방법은 그냥 해당 경로안에 분리할 파일들의 경로를 하위폴더로 만들고 컨트롤러의 스트링 리턴값의 앞에 /경로명/를 추가해주는 것.. 이 방법 찾은 글에서는 편법이라고 이렇게 써도 되는건가 싶다고 써두셨던데.. 인터넷 뒤져보기도 하고 다른 사람들한테 물어보기도 하고 그러니까 인터널리소스뷰리졸버를 사용하는 이상 어쩔 수 없다고 하는 내용밖에 보질 못했다.
어차피 서버단에서 작동하는 내용이라, 클라이언트단에선 매핑된 주소만 보이지, 저런식의 경로로 보이지 않으니까 딱히 상관없지 않을까 싶기도..
'spring' 카테고리의 다른 글
[spring boot] Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 에러 (0) | 2022.01.27 |
---|---|
[Spring/mybatis] HTTP Status 500 - Internal Server Error 발생시 해결 (0) | 2021.07.05 |
resources 매핑 (0) | 2021.07.05 |
mybatis 여러개의 mapping 파일을 동시에 사용 (0) | 2021.07.05 |
다른 컨트롤러에 있는 do 경로로 이동 (0) | 2021.07.05 |