JAVA/Spring Framework
추상 클래스로 view 만들기, properties 파일 사용해 폴더 위치 지정하기
Tech Signal
2020. 10. 13. 21:14
jsp를 사용하는 이유가 '응답데이터를 html로 내보내기위해'인데 이 다운로드컨트롤러는 jsp를 사용할 이유가 딱히 없음.
그러니 MVC패턴에 맞도록
< 추상 뷰를 이용, 새로운 ViewResolver를 사용해보자>
@RequestMapping("/board/download.do")
public String download(
@RequestParam(name="what", required=true) int att_no,
Model model) throws IOException, ServletException{
AttatchVO attatch = service.download(att_no);
model.addAttribute("attatch", attatch);
return "downloadView";
}
요렇게 코드를 작성하면 view가 클래스패스 내에 존재하므로 새로운 viewResolver가 필요하고 bean 등록해야함.
<beans:bean id="BNVR" class="org.springframework.web.servlet.view.BeanNameViewResolver"
p:order="2"
/>
<!-- ctroller에서 리턴시킨 뷰네임이 여기 id가 됨. 등록된 빈들 중 id, viewname을 매치시키는 전략 필요 -->
<beans:bean id="downloadView" class="kr.or.ddit.board.view.DownloadView" />
BeanNameViewResolver라는 이름의 클래스를 등록하고, TilesViewResolver다음으로 순위를 정해준다.
<properties 파일 사용해 저장할 폴더 위치 자동 관리>
이 파일은 어떤 컨테이너에 추가되어야할까? : root-Context.xml에서 util 네임스페이스 추가하고 빈 등록하기.
빈 등록을 마치면 이런 방식으로 사용이 가능함.
스프링 컨테이너가 파일 객체를 자동으로 만들어준다.