Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据不处理可分页操作参数的创建_Java_Spring_Spring Mvc_Spring Data - Fatal编程技术网

Java Spring数据不处理可分页操作参数的创建

Java Spring数据不处理可分页操作参数的创建,java,spring,spring-mvc,spring-data,Java,Spring,Spring Mvc,Spring Data,我有一个简单的控制器动作: 公共类分类控制器 { @请求映射(值={”/“,”“}) 公共字符串列表( 模型, @PageableDefault(大小=分类控制器。页数限制)可分页寻呼机 ) { //加载页面数据 Page Page=this.categoryService.findAll(寻呼机); /*这里的行动逻辑*/ } } 这是我的pom.xml片段: org.springframework 春豆 3.2.4.1发布 org.springframework 弹簧网 3.2.4.1发

我有一个简单的控制器动作:

公共类分类控制器
{
@请求映射(值={”/“,”“})
公共字符串列表(
模型,
@PageableDefault(大小=分类控制器。页数限制)可分页寻呼机
)
{
//加载页面数据
Page Page=this.categoryService.findAll(寻呼机);
/*这里的行动逻辑*/
}
}
这是我的
pom.xml
片段:


org.springframework
春豆
3.2.4.1发布
org.springframework
弹簧网
3.2.4.1发布
org.springframework
SpringWebMVC
3.2.4.1发布
org.springframework.data
spring数据共享
1.6.4.1发布
org.springframework.data
spring数据jpa
1.5.0.1发布
将此添加到我的
applicationContext.xml
后:


我有以下错误:

org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.data.domain.Pageable]: Specified class is an interface
Spring数据本身工作正常,JPA存储库正在工作。但直到现在,我还在控制器中手工编写分页(自己计算页面,手工创建
PageRequest
对象)。我想利用SpringDataWebExtras,但由于某些原因,它们不适合我。。。手工注册过时的
org.springframework.data.web.PageableArgumentResolver
部分地使其工作,但不是完全工作,但我认为这甚至不应该是一个解决方案

org.springframework
上启用调试记录器后,我看到:

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()

所以它是注册的-知道它为什么不工作吗?

您的问题是,您试图混合使用XML配置和基于Java配置的配置。在这种情况下,这是行不通的。配置类中的bean将被实例化,但也就是说,它们没有注册到
配置中

您必须手动将bean添加到
ConversionService
RequestMappingHandlerMapping
。或者是我们的开关,至少是您的
DispatcherServlet
配置到Java配置

在XML中,您可以使用
标记配置其他参数解析器。(这模拟了
SpringDataWebConfiguration
中的配置)


也可以将其添加到用户应用程序上下文中

<mvc:annotation-driven>
    <mvc:argument-resolvers>
        <bean class="org.springframework.data.web.PageableHandlerMethodArgumentResolver" />
    </mvc:argument-resolvers>
</mvc:annotation-driven>


它将与Spring 4一起工作

将其添加到由DispatcherServlet加载的配置中。我假设applicationContext.xml是由
ContextLoaderListener
加载的。它不是等效的吗?我认为,
applicationContext.xml
是所有servlet继承的,只要我只有一个servlet,我将bean定义放在哪里就没有区别。。。无论如何-我尝试将其移动到
mailerservlet.xml
,结果是一样的,日志看起来也一样(我看到bean已初始化,web配置已处理,但web上出现错误)。感谢您指出这一点!幸运的是,我发现
元素允许定制您提到的服务。下面是我所需要的,以使它与
``一起工作非常感谢。从Spring3.0开始,FormattingConversionServiceFactoryBean现在打包在org.springframework.format.support下。FormattingConversionServiceFactoryBean@chrismarx那实际上是个打字错误。谢谢你指出。如果我们设置了,那么什么是正确的值?如果我给1,那么所有的第0个索引值都将丢失…给第0个索引可以吗?您介意解释一下为什么在这种特殊情况下没有注册ConversionService吗?这与我的回答中的第一个解决方案基本相同。@M.Deinum only shorter
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />

<bean class="org.springframework.data.repository.support.DomainClassConverter">
   <constructor-arg ref="conversionService" />
</bean>

<mvc:annotation-driven conversion-service="conversionService">
    <mvc:argument-resolvers>
        <ref bean="sortResolver"/>
        <ref bean="pageableResolver" />
    </mvc:argument-resolvers>
</mvc:annotation-driven>

<bean id="sortResolver" class="org.springframework.data.web.SortHandlerMethodArgumentResolver" />
<bean id="pageableResolver" class="org.springframework.data.web.PageableHandlerMethodArgumentResolver">
    <constructor-arg ref="sortResolver" />
</bean>
<mvc:annotation-driven>
    <mvc:argument-resolvers>
        <bean class="org.springframework.data.web.PageableHandlerMethodArgumentResolver" />
    </mvc:argument-resolvers>
</mvc:annotation-driven>