有一段时间我使用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>
Run Code Online (Sandbox Code Playgroud)
正如我之前提到的,我没有使用这个:
<bean id="ajaxViewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver" p:order="0">
<property name="viewClass" value="org.springframework.js.ajax.tiles2.AjaxTilesView"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
一切都很好,但当我向我的代码介绍ajaxViewResolver时.什么页面我请求(通常和ajax调用)我得到这个回应:
HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/tiles/TilesApplicationContext
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
谢谢你的帮助,K
编辑#1:@Bar说:"你有没有包括spring-webflow jar?springsource.org/spring-web-flow#download"
好吧,我正在使用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> …Run Code Online (Sandbox Code Playgroud)