2015-03-03 14 views
6

Jestem nowy, aby wiosną i próbować używać płytek ze sprężyną. ale wychodzi ponad błąd. używam maven w moim projekcie. Próbowałem również zmienić wersje, ale bezużyteczne. Oto treść projektu:płytki ze sprężyną: błąd - 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> 

płytki-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> 

następnie są płytki MainTemplate, nagłówek i stopka jsp, które nie sądzę mieć żadnych problemów. każda pomoc w tym zakresie będzie bardzo ceniona, z góry dziękuję.

Odpowiedz

15

Wreszcie udało się! Wymieniłem tiles2 przez tiles3 jak słusznie zauważył przez MCK i dodaje następującą linię do płytek-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

To zadziałało dla mnie –

10

W swoim pliku servlet-context.xml używasz klas integracji płytek spring2.

użycie zamiast klas znalezione pod org.springframework.web.servlet.view.tiles3

+0

więc powinienem zastąpić tiles2 przez tiles3, prawda? – 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

Zastosowanie:

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

Nie:

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