BeanNameViewResolver
- 뷰의 이름과 동일한 이름을 가지는 빈을 view로 사용
- 사용자 정의 view객체를 사용하는 경우 사용
1. 컨트롤러에서 CommonFile 클래스의 getDownLoadView 메소드 호출
[UserManagementController.java]
return CommonFile.getDownloadView(file, fileName);
2. commonFile클래스에서 ModelAndView 리턴
public static ModelAndView getDownloadView(File file, String fileName) {
CommonFile downloadFile = new CommonFile();
downloadFile.setFile(file); //파일경로
downloadFile.setFileName(fileName); //파일이름
ModelAndView mav = new ModelAndView(); //모델엔뷰 객체생성
mav.setViewName("download"); // 응답할 view이름 설정"download"
mav.addObject("downloadFile", downloadFile); // view에 전달할 값
return mav; // modelAndView return
}
3. [applicaitonContext.xml] BeanNameViewResolver 설정
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="0" /> //우선순위 0.
</bean>
4.View객체로 사용할 bean 설정.
<!-- 다운로드 View -->
<bean id="download" class="com.imoxion.sensmail.web.common.DownloadView"/>
위와 같이 빈을 등록하면 download라는 이름으로 view를 호출했을 때 지정한 클래스를 객체로 사용
"downlaod" 빈 설정을 해준다. -> DownLoadView 클래스를 탄다.
[DownLoadView.java]클래스를 타고 최종적으로 파일을 다운로드 하는 작업을 실행하게 된다..!!
출처: https://cheershennah.tistory.com/107 [Today I Learned. @cheers_hena 치얼스헤나]
반응형
'차근차근 > Spring' 카테고리의 다른 글
pom.xml 에 jackson 추가 중 에러 (0) | 2022.01.10 |
---|---|
ViewResolver (0) | 2022.01.10 |
이클립스2020-06 | openjdk1.8 (2) + tiles 도전 (0) | 2022.01.07 |
엑셀파일 만들기 + 암호걸기 (0) | 2021.12.21 |
spring return "redirect:/주소"와 return "view이름" 차이 (0) | 2021.12.16 |