2015-03-03 18 views
6

Sono nuovo alla primavera e cerco di usare le piastrelle con Spring. ma superando l'errore. sto usando Maven nel mio progetto. Ho provato anche a cambiare versioni, ma non serve. Di seguito sono riportati i contenuti del progetto:tiles with spring: getting error - java.lang.ClassNotFoundException: org.apache.tiles.TilesApplicationContext

pom.xml

<!-- Apache Tiles --> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-core</artifactId> 
     <version>3.0.5</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-jsp</artifactId> 
     <version>3.0.5</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-api</artifactId> 
     <version>3.0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-servlet</artifactId> 
     <version>3.0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-template</artifactId> 
     <version>3.0.5</version> 
    </dependency> 

servlet-context.xml

<!-- for Tiles --> 
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" id="viewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>    
</bean> 

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

piastrelle-definitions.xml

<?xml version="1.0" encoding="UTF-8"?> 
<tiles-definitions> 
    <definition name="base.definition" template="/WEB-INF/views/tilesMainTemplate.jsp"> 
     <put-attribute name="title" value=""></put-attribute> 
     <put-attribute name="header" value="/WEB-INF/views/header.jsp"></put-attribute> 
     <put-attribute name="menu" value="/WEB-INF/views/home.jsp"></put-attribute> 
     <put-attribute name="body" value=""></put-attribute> 
     <put-attribute name="footer" value="/WEB-INF/views/footer.jsp"></put-attribute> 
    </definition> 

    <definition extends="base.definition" name="saveAd"> 
     <put-attribute name="title" value="Post your free Ad"></put-attribute> 
     <put-attribute name="body" value="/WEB-INF/views/adSave.jsp"></put-attribute> 
    </definition> 


</tiles-definitions> 

poi ci sono tilesMainTemplate, header e footer jsp che non penso abbiano alcun problema. qualsiasi aiuto a riguardo sarà molto apprezzato, grazie in anticipo.

risposta

15

Infine ha funzionato! Ho sostituito tiles2 da tiles3 come giustamente sottolineato da MCK e ha aggiunto seguente riga alla piastrelle-definitions.xml

<!DOCTYPE tiles-definitions PUBLIC 
    "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
    "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 
+0

Ha funzionato per me –

10

Nel file servlet-context.xml si utilizzano le classi di integrazione tile2 tile-tiles.

Utilizzare invece le classi che si trovano sotto org.springframework.web.servlet.view.tiles3

+0

quindi dovrei sostituire tiles2 per tiles3, giusto? – BhendiGawaar

0
use this code if your are using version 3 . based on the version your are using should configure the tiles. 
<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass"> 
      <value> 
       org.springframework.web.servlet.view.tiles3.TilesView 
      </value> 
     </property> 
    </bean> 
    <bean id="tilesConfigurer" 
     class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 
     <property name="definitions"> 
      <list> 
       <value>/WEB-INF/estudo-tiles-servlet.xml</value> 
      </list> 
     </property> 
    </bean> 
0

Usando:

import org.springframework.web.servlet.view.tiles3.TilesView; 
Non

:

import org.springframework.web.servlet.view.tiles2.TilesView; 
Problemi correlati