深入实践Spring Boot3.2.5 分页查询控制器

3.2.5 分页查询控制器

列表数据的查询使用分页的方法,按提供的查询字段参数、页码、页大小及其排序字段等参数,通过调用数据管理模块进行查询,然后返回一个分页对象Page,如代码清单3-8所示。这里的分页查询调用了3.1.3节定义的分页查询服务类。

代码清单3-8 电影分页查询控制器

    @RequestMapping(value="/list")

public
Page<Movie> list(HttpServletRequest request) throws Exception{

    String name =
request.getParameter("name");

    String page =
request.getParameter("page");

    String size =
request.getParameter("size");

    Pageable pageable = new
PageRequest(page==null? 0: Integer.parseInt(page),

size==null?
10:Integer.parseInt(size),

            new Sort(Sort.Direction.DESC,
"id"));

 

    Filters filters = new Filters();

    if (!StringUtils.isEmpty(name)) {

        Filter filter = new
Filter("name", name);

        filters.add(filter);

    }

 

    return pagesService.findAll(Movie.class,
pageable, filters);

}

时间: 2024-10-31 08:26:17

深入实践Spring Boot3.2.5 分页查询控制器的相关文章

深入实践Spring Boot3.2.3 修改控制器

3.2.3 修改控制器 若要实现对电影的修改及保存操作,需要先将电影的数据展示在视图界面上,然后接收界面的操作,调用数据管理模块将更改的数据保存至数据库中,如代码清单3-6所示.其中,为了简化设计,将剧照中的图片文件和电影角色名称做了预定义处理.修改数据时,由于从界面传回的电影对象中,丢失了其角色关系的数据(这是OGM的缺点),所以再次查询一次数据库,以取得一个电影的完整数据,然后再执行修改的操作. 代码清单3-6 修改电影控制器 @RequestMapping(value="/edit/{id

深入实践Spring Boot3.2.1 新建控制器

3.2.1 新建控制器 接收新建电影的请求,以及输入一部电影的数据后的最后提交,由新建控制器进行处理.在控制器上将执行两个操作,第一个操作将返回一个新建电影的视图,第二个操作接收界面中的输入数据,并调用数据管理模块进行保存,如代码清单3-4所示.其中,create函数将返回一个新建电影的视图,它不调用数据管理模块,save函数将需要保存的数据通过调用数据管理模块存储至数据库中,并返回一个成功标志.注意,为了简化设计,将电影剧照的图片文件做了预定义处理. 代码清单3-4 新建电影控制器 @Requ

深入实践Spring Boot3.2.2 查看控制器

3.2.2 查看控制器 查看一个电影的详细信息时,控制器首先使用请求的电影ID向数据管理模块请求数据,然后将取得的数据输出到一个显示视图上,如代码清单3-5所示. 代码清单3-5 查看电影控制器 @RequestMapping(value="/{id}")     public ModelAndView show(ModelMap model, @PathVariable Long id) {         Movie movie = movieRepository.findOne(

深入实践Spring Boot3.2.4 删除控制器

3.2.4 删除控制器 删除电影时,从界面上接收电影的ID参数,然后调用数据管理模块将电影删除,如代码清单3-7所示. 代码清单3-7 删除电影控制器 @RequestMapping(value="/delete/{id}",method = RequestMethod.GET)     public String delete(@PathVariable Long id) throws Exception{         Movie movie = movieRepository.

深入实践Spring Boot3.1.3 分页查询设计

3.1.3 分页查询设计 对于新型的Neo4j数据库来说,由于它的资源库遵循了JPA的规范标准来设计,在分页查询方面有的地方还不是很完善,所以在分页查询中,设计了一个服务类来处理,如代码清单3-3所示.其中,使用Class<T>传入调用的实体对象,使用Pageable传入页数设定和排序字段设定的参数,使用Filters传入查询的一些节点属性设定的参数. 代码清单3-3 Neo4j分页查询服务类 @Service public class PagesService<T> {    

深入实践Spring Boot3.4.1 列表视图设计

3.4.1 列表视图设计 电影的列表视图是电影视图的主页,它引用了3.3节使用Thymeleaf设计的页面框架模板layout.html,在这里主要实现对数据的分页查询请求和列表数据显示,并提供了一部电影的新建.查看.修改和删除等超链接. 1.?分页设计 电影的列表视图的分页设计使用了"jquery.pagination.js"分页插件,编写如代码清单3-15所示的脚本,其中getOpt定义了分页工具条的一些基本属性,pageaction通过"./list"调用控制

深入实践Spring Boot3.1 模型设计

3.1 模型设计 数据管理模块实现了MVC中模型的设计,主要负责实体建模和数据库持久化等方面的功能.在本章的实例中,将使用上一章的Neo4j数据库的例子,对电影数据进行管理.回顾一下,有两个节点实体(电影和演员)和一个关系实体(角色).其中,关系实体体现了节点实体之间的关系,即一个演员在一部电影中扮演一个角色.实体建模和持久化与上一章的实现差不多.只不过为了适应本章的内容,电影节点实体和角色关系实体的建模在属性上做了些许调整.另外针对Neo4j数据库的分页查询也做了一些调整和优化.

深入实践Spring Boot3.3 使用Thymeleaf模板

3.3 使用Thymeleaf模板 完成了模型和控制器的设计之后,接下来的工作就是视图设计了.在视图设计中主要使用Thymeleaf模板来实现.在进行视图设计之前,先了解一下Thymeleaf模板的功能. Thymeleaf是一个优秀的面向Java的XML/XHTML/HTML 5页面模板,并具有丰富的标签语言和函数.使用Spring Boot框架进行界面设计,一般都会选择Thymeleaf模板.

深入实践Spring Boot3.3.1 Thymeleaf配置

3.3.1 Thymeleaf配置 要使用Thymeleaf模板,首先,必须在工程的Maven管理中引入它的依赖:"spring-boot-starter-thymeleaf",如代码清单3-9所示. 代码清单3-9 Thymeleaf依赖配置 <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-t