Ich habe eine einfache Controller-Aktion:Spring Data behandelt nicht Pageable Aktion Argument Schöpfung
public class CategoriesController
{
@RequestMapping(value = { "/", "" })
public String list(
Model model,
@PageableDefault(size = CategoriesController.PAGE_LIMIT) Pageable pager
)
{
// load page data
Page<Category> page = this.categoryService.findAll(pager);
/* action logic here */
}
}
Hier ist mein pom.xml
Fragment:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<version>1.6.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.5.0.RELEASE</version>
</dependency>
Nach addtion das meinem applicationContext.xml
:
<bean class="org.springframework.data.web.config.SpringDataWebConfiguration"/>
Ich habe folgenden Fehler:
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.data.domain.Pageable]: Specified class is an interface
Spring Data selbst funktioniert gut, JPA-Repositories funktionieren. Aber bis jetzt hatte ich handgeschriebene Paginierung in den Steuerpulten (eigene Seiten berechnend, PageRequest
Gegenstände von Hand verursachend). Ich wollte Spring Data Web-Extras nutzen, aber sie funktionieren nicht für mich aus irgendeinem Grund ... Registrierung veraltet org.springframework.data.web.PageableArgumentResolver
von Hand teilweise funktionierte es, aber nicht vollständig, aber immer noch, ich denke nicht, dass dies sogar sollte eine Lösung sein.
Nach der Aktivierung der Debug-Logger auf org.springframework
ich sehe, dass:
01:37:33.850 [localhost-startStop-1] DEBUG org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader - Registering bean definition for @Bean method org.springframework.data.web.config.SpringDataWebConfiguration.pageableResolver()
es registriert Also - eine Idee, warum es funktioniert nicht?
es In der Konfiguration durch den 'DispatcherServlet' geladen. Ich nehme an, dass * applicationContext.xml * vom 'ContextLoaderListener' geladen wird. –
Ist das nicht äquivalent? Ich weiß, dass 'applicationContext.xml' von allen Servlets geerbt wird und solange ich nur einen habe, gibt es keinen Unterschied zwischen der Definition der Bean ... Wie auch immer - ich habe versucht, das zu' mailer-servlet zu verschieben .xml' und das Ergebnis ist das gleiche, Protokolle sehen auch gleich aus (Ich sehe die Bean initialisiert und die Webkonfiguration verarbeitet, aber der Fehler tritt im Web auf). –