타일즈와 웹 플로우 연동
실습을 통해서 도서 쇼핑몰에서 스프링 웹 플로우를 적용시켜 주문 처리 페이지를 작성했습니다.
웹 플로우에서 타일즈를 적용시키기 위해서는 스프링 MVC 설정 파일에
커스텀 flowBuilder 서비스 설정 및 웹 플로우에 타일즈를 사용할 수 있도록 설정해야 합니다.
FlowBuilder 서비스 설정
FlowBuilder 서비스는 <webflow:flow-builder-services> 요소에 웹 플로우를 적용하여 사용되는 서비스나 설정 등을
커스터마이징할 수 있도록 합니다.
형식은 다음과 같습니다.
<webflow:flow-builder-services id="FlowBuilder 서비스 ID"
view-factory-creator="viewFactoryCreator를 커스터마이징하는 빈 ID"/>
<webflow:flow-executor> 요소의 속성은 다음과 같습니다.
속성 | 설명 |
id | FlowBuilder 서비스 ID |
view-factory-creator | ViewFactoryCreator를 커스터마이징하는 스프링 빈 ID |
conversion-service | SWF 시스템에서 사용하는 ConversionService를 커스터마이징 |
expression-parser | ExpressionParser를 커스터마이징 시 사용 |
development | Flow 개발 모드 설정 true일 때 Flow 정의 변경 시 hot-reloading을 적용 (message bundles와 같은 리소스 포함) |
FlowBuilder 서비스 설정 예시입니다.
<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices">
<webflow:flow-location path="WEB-INF/flows/order/order-flow.xml"/>
</webflow:flow-registry>
<webflow:flow-builder-services id="flowBuilderServices"/>
위 예제에서 <webflow:flow-builder-services> 요소에 웹 플로우를 적용하여 사용되는 서비스나 설정 등을
커스터마이징합니다.
이 떄 id 속성 값은 웹 플로우의 흐름 레지스트리인 <webflow:flow-registry> 요소의
flow-builder-services 속성 값으로 설정되어 있어야 합니다.
ViewResolver 빈 등록
웹 플로우 2.0 이상에서 별도 지정 없이 웹 플로우 작업 디렉터리에 있는 뷰 페이지에 뷰 리졸버를 매핑해 줍니다.
기존 스프링 MVC 애플리케이션에 웹 플로우를 연동 시 이미 외부 뷰 리졸버가 매핑되어 있습니다.
기존에 사용하던 뷰 리졸버를 계속 사용하면서 웹 플로우에서도 사용하기 위해서는
스프링 MvcViewFactoryCreator 클래스를 사용합니다.
형식은 다음과 같습니다.
<bean id="viewFactoryCreator"
class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
<property name="viewResolvers" ref="참조할 타일즈 뷰 리졸버"/>
</bean>
다음은 스프링 MVC 설정 파일에 MvcViewFactoryCreator 클래스를 빈으로 설정하는 예시입니다.
<webflow:flow-builder-services id="flowBuilderServices"
view-factory-creator="viewFactoryCreator"/>
<bean id="viewFactoryCreator"
class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
<property name="viewResolvers" ref="tilesViewResolver"/>
</bean>
스프링 웹 플로우에서 사용하고자 하는 뷰 리졸버가 tilesViewResolver라면
MvcViewFactoryCreator 빈에서 <property> 요소의 ref 속성 값에 설정해 줍니다.
'SPRING' 카테고리의 다른 글
[SPRING]#76 도서 쇼핑몰 구현 (DB 연동1) (0) | 2024.03.02 |
---|---|
[SPRING]#75 도서 쇼핑몰 구현 (타일즈 7) (0) | 2024.03.01 |
[SPRING]#73 도서 쇼핑몰 구현 (타일즈 5) (0) | 2024.03.01 |
[SPRING]#72 도서 쇼핑몰 구현 (타일즈 4) (0) | 2024.02.25 |
[SPRING]#71 도서 쇼핑몰 구현 (타일즈 3) (0) | 2024.02.25 |