SpringDataJpa杂记(二) SpringMVC与SpringDataJpa小集成

零) 代码

import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping(value = "/c")
public class TestController {

@ResponseBody
@RequestMapping(value = "/t1", method = RequestMethod.GET)
// http://localhost:8080/c/t1?page.page=2&page.size=50&page.sort=email&page.sort.dir=desc
public Object test1(Pageable pageable) {
PageRequest p = (PageRequest) pageable;
System.out.println(p.getPageNumber() + " " + p.getPageSize() + " " + p.getSort());
return "OK";
}

@ResponseBody
@RequestMapping(value = "/t2/{id}", method = RequestMethod.GET)
// http://localhost:8080/c/t2/1
public Object test2(@PathVariable("id") User user) {
return user;
}

}


一) Web Pagination
代码参考上面的 test1()
这需要一个WebArgumentResolver实现,这个接口我还第一次注意,MethodArgumentResolver用过,两者用法大同小异。

<mvc:annotation-driven>
<mvc:message-converters>
<!-- ... -->
</mvc:message-converters>
<mvc:argument-resolvers>
<!-- 配置 -->
<bean class="org.springframework.data.web.PageableArgumentResolver" />
</mvc:argument-resolvers>
</mvc:annotation-driven>


二) Domain class web binding for Spring MVC
代码参考上面 test2()
与Web Pagination 不同,这里不是使用的WebArgumentResolver或MethodArgumentResolver,而是注册PropertyEditor,
注册时这两个bean放在root上下文之中

<bean id="conversion-service" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<util:set>
</util:set>
</property>
<property name="formatters">
<util:set>
</util:set>
</property>
</bean>

<bean class="org.springframework.data.repository.support.DomainClassConverter">
<constructor-arg ref="conversion-service" />
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值