2011. 7. 18. 14:25


Spring 에 tiles2  를 붙일 때 ModelAndView 로 return 할 때
1. tiles 로 리턴
2. jsp 로 리턴

을 해야하는 경우가 있다.

이때 tiles1 과 spring 은 

 <bean id="viewResolver-tiles"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="order" value="1"></property>
  <property name="viewClass" value="org.springframework.web.servlet.view.tiles.TilesJstlView"/>
  <property name="viewNames" value=".*"></property>
 </bean>

 <bean id="viewResolver"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="order" value="2"></property>
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
  <property name="prefix" value="/"></property>
  <property name="suffix" value=".jsp"></property>
 </bean>

식으로 viewResolver 를 각각 두면된다. 허나 tile2 일 때는 패키지구조가 변화하여 위와같이 사용불가능하다.

spring 과 tiles2 를 잡을 땐 이렇게 하면된다.

 <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
   <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
   <property name="viewNames" value=".*"></property>
   <property name="order" value="1"/>
 </bean>

 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
   <property name="prefix" value="/jsp/"></property>
   <property name="suffix" value=".jsp"></property>
   <property name="order" value="2"/>
 </bean>

해보진 않았지만 tiles1일 때도 UrlBasedViewResolver 에서 viewName 을 설정해주면 되지 않을까 싶다.
(대신 tiles1 에 맞는 TilesView 클래스를 지정해줘야겠지만..)

참고 : http://blog.schemingsolutions.com/?p=23

Posted by silver0r