차근차근/Spring

BeanNameViewResolver

예쁜꽃이피었으면 2022. 1. 10. 14:20
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 치얼스헤나]

 

 

 

 

반응형