Spring 3 MVC和Apache Tiles 2集成错误

Ath*_*way 13 spring tiles spring-mvc

我一直在尝试将Spring(3.0.4和3.0.5)MVC与Apache Tiles(2.1.2,2.1.4和2.2.2)集成,但无济于事.在每种情况下,我都会收到以下错误:

java.lang.NoClassDefFoundError:org/apache/tiles/startup/BasicTilesInitializer

根据Tiles文档,BasicTilesInitializer已被弃用.我认为Spring的TilesConfigurer的最新版本将引用正确的类,但它没有,我仍然得到相同的错误.

我正在使用以下配置在我的spring mvc app中设置Tiles:

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

<beans:bean 
    class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">      
    <beans:property 
        name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>                
</beans:bean>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望Spring 3.0.5能够使用Tiles 2.2.2.它们是本文的最新版本.

iow*_*r08 20

对于tile 3,请使用class org.springframework.web.servlet.view.tiles3.TilesConfigurer.确保你有这个spring webmvc.


Ral*_*lph 12

org.apache.tiles.startup.BasicTilesInitializer是一类的tiles-core(2.2.1).jar.检查您是否已部署了tiles-corejar


Car*_*los 8

如果您正在使用maven,那么您可以添加此依赖项以解决问题:

<dependency>
     <groupId>org.apache.tiles</groupId>
     <artifactId>tiles-servlet</artifactId>
     <version>2.2.2</version>
</dependency>  
Run Code Online (Sandbox Code Playgroud)