私はSpringに不慣れで、Springでタイルを使おうとしています。しかし、上記のエラーが発生します。私は自分のプロジェクトでMavenを使用しています。バージョンも変えてみましたが、ダメ。プロジェクトの内容は次のとおりです。
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>
tiles-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>
次に、問題がないと思われるtilesMainTemplate、header、footerjspがあります。この点での助けは大歓迎です、よろしくお願いします。
ついにうまくいきました! mckで正しく指摘されているように、tiles2をtiles3に置き換え、次の行をtiles-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">
Servlet-context.xmlでは、tiles2のspring-tiles統合クラスを使用しています。
代わりに、org.springframework.web.servlet.view.tiles3の下にあるクラスを使用してください
使用:
import org.springframework.web.servlet.view.tiles3.TilesView;
ない:
import org.springframework.web.servlet.view.tiles2.TilesView;
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>