しばらくの間、Spring フレームワークを使用して Web アプリを開発していましたが、すべてうまくいきました。しかし最近、自分のページにいくつかの ajax 呼び出しを導入する必要があることが判明しました。いくつかのグーグル検索の後、Tiles2 は、パラメーター 'fragments=nameOfTile' を使用して、ajax 呼び出しが受信されている間、ビューを解決するための優れたサポートを提供することがわかりました。これを実現するには、org.springframework.js.ajax.AjaxUrlBasedViewResolverwhich と org.springframework.js.ajax.tiles2.AjaxTilesView を使用する必要があります。
以下は、ビュー リゾルバーの構成です (TILES.3.0.1 を使用していることに注意してください)。
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions" value="WEB-INF/tiles-config.xml"/>
</bean>
<bean id="ajaxViewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver" p:order="0">
<property name="viewClass" value="org.springframework.js.ajax.tiles2.AjaxTilesView"/>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" p:order="1">
</bean>
私がこれを使用していなかったときに前に述べたように:
<bean id="ajaxViewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver" p:order="0">
<property name="viewClass" value="org.springframework.js.ajax.tiles2.AjaxTilesView"/>
</bean>
すべて問題ありませんでしたが、コードに ajaxViewResolver を導入したとき。私が要求したページ (通常および ajax 呼び出し) に対して、次の応答が返されます。
HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/tiles/TilesApplicationContext
だから私の質問は:
- Tiles3 と一緒に AjaxUrlBasedViewResolver を使用できますか?
- はいの場合、問題を解決する方法と原因は何ですか?
- そうでない場合、これに対する「準備ができている」ソリューションはありますか?
助けてくれてありがとう、K
編集 #1: @Bar は次のように述べています。
さて、依存関係マネージャーとしてmavenを使用しています。以下に、私の pom.xml を示します。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-webflow</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>4.1.0.Final</version>
</dependency>
したがって、それを含める必要があります。