2012-05-24 93 views
0

當我嘗試在我的Web應用程序中將Spring從2.1版升級到Spring 3.0.x時,出現了這種情況。 Spring 3.0.x不支持struts-tiles 1.3,它需要Apache Tiles 2.x.所以,我還必須將Struts-Tiles 1.3升級到Apache Tiles 2.x. Apache瓷磚有這個migration guide,幫助我完成這項工作。但是,我似乎碰了壁對這個未在遷移guide.Here提及的細節:Struts瓷磚到瓷磚遷移 - 在Spring支持類中的變化

這是我們可以使用TilesConfigurer,

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles.TilesConfigurer"> 
     <property name="factoryClass"> 
      <value>org.apache.struts.tiles.xmlDefinition.I18nFactorySet</value> 
     </property> 
     <property name="definitions"> 
      <list> 
       <value>/WEB-INF/tiles-defs.xml</value> 
      </list> 
     </property> 
</bean> 

因爲,類tiles.TilesConfigurer是在Spring 3.0.x中過時了,我改變了它使用org.springframework.web.servlet.view.tiles2.TilesConfigurer

tiles2.TilesConfigurer沒有不同tiles.TilesConfigurer一個setFactoryClass(..)方法現在已不建議。因此我的bean初始化失敗。

我擡頭看了tiles2.TilesConfigurerapi,現在有方法setDefinitionsFactoryClass(..)setPreparerFactoryClass(..)。我不能在這裏決定哪一個是相關的,我無法找到org.apache.struts.tiles.xmlDefinition.I18nFactorySet的同等課程。在Tiles 2.2中是否有這種類型可直接使用,還是需要用Tiles 2.2中的等價物重新訪問我現有的一些代碼?

任何指針將不勝感激。

回答

0

一位來自Tiles社區的紳士給出瞭解決方案。您可以在2012年5月的Apache Tiles用戶列表中找到該線程歸檔。 Cross在此處發佈:

Tiles 2.2中支持factoryClass org.apache.struts.tiles.xmlDefinition.I18nFactorySet。所以,我們不需要爲新的tiles2.TilesConfigurer類添加任何特別的東西。最終的XML元素看起來像這樣

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
     <property name="definitions"> 
      <list> 
       <value>/WEB-INF/tiles-defs.xml</value> 
      </list> 
     </property> 
</bean> 

因此,刪除屬性的竅門。