Java获取文章的上一篇/下一篇

Java获取文章的上一篇/下一篇思路:每次查询详情返回三条数据信息,当前对象,上一条与下一条的Id和标题 代码实现如下: 1、PreAndNextModel 1 public class PreAndNextModel { 2 /** 3 * 上一篇或者下一篇的id 4 */ 5 private Integer id; 6 /**

Java获取文章的上一篇/下一篇"

思路:每次查询详情返回三条数据信息,当前对象,上一条与下一条的Id和标题

代码实现如下:

1、PreAndNextModel

 1 public class PreAndNextModel {
 2     /**
 3      * 上一篇或者下一篇的id
 4      */
 5     private Integer id;
 6     /**
 7      * 上一篇或者下一篇的标题
 8      */
 9     private String title;
10 
11     public Integer getId() {
12         return id;
13     }
14 
15     public void setId(Integer id) {
16         this.id = id;
17     }
18 
19     public String getTitle() {
20         return title;
21     }
22 
23     public void setTitle(String title) {
24         this.title = title;
25     }
26 }

 

2、获取上一篇

 1 @Override
 2 public PreAndNextModel getPreModel(Integer productId, Integer proCategoryId) {
 3 
 4     IProductDao iProductDao = new ProductDaoImpl();
 5     //new model
 6     PreAndNextModel pre = new PreAndNextModel();
 7 
 8     Integer preId = null;
 9     List<ProductDto> list;
10     //查询该分类下的集合
11     list = iProductDao.findAllByCategoryId(proCategoryId);
12     //获取集合长度
13     int count = list.size();
14     //将该分类下的Id放入数组当中
15     int[] intId = new int[count];
16     for (int i = 0; i < count; i++) {
17         intId[i] = list.get(i).getId();
18     }
19     //获取当前Id的上一个Id下标
20     for (int j = 0; j < count; j++) {
21         if (intId[j] == productId) {
22             if (j != 0) {
23                 preId = intId[j - 1];
24             }
25         }
26     }
27     isPreAndNext(iProductDao, pre, preId);
28     return pre;
29 }

 

3、获取下一篇

 1 @Override
 2 public PreAndNextModel getNextModel(Integer productId, Integer proCategoryId) {
 3     IProductDao iProductDao = new ProductDaoImpl();
 4     PreAndNextModel next = new PreAndNextModel();
 5 
 6     Integer nextId = null;
 7     List<ProductDto> list;
 8     //查询该分类下的集合
 9     list = iProductDao.findAllByCategoryId(proCategoryId);
10     //获取集合长度
11     int count = list.size();
12     //将该分类下的Id放入数组当中
13     int[] intId = new int[count];
14     for (int i = 0; i < count; i++) {
15         intId[i] = list.get(i).getId();
16     }
17     //获取当前Id的下一个Id下标
18     for (int j = 0; j < count; j++) {
19         if (intId[j] == productId) {
20             //判断是不是最后一个下标
21             if (j != (count - 1)) {
22                 nextId = intId[j + 1];
23             }
24         }
25     }
26     isPreAndNext(iProductDao, next, nextId);
27     return next;
28 }

 

4、判断上一篇或者下一篇是否存在

 1 private void isPreAndNext(IProductDao iProductDao, 
 2              PreAndNextModel pre, Integer preId) {
 3     ProductDto productDto;
 4     if (preId == null) {
 5         pre.setId(null);
 6         pre.setTitle("无");
 7     } else {
 8         //将上一页Id和标题赋值返回
 9         productDto = iProductDao.findById(preId);
10         pre.setId(productDto.getId());
11         pre.setTitle(productDto.getName());
12     }
13 }

 

5、调用返回

1 //上一个
2 PreAndNextModel pre = iProductService.getPreModel(productId, 
3                 productModel.getProCategoryId());
4 //下一个
5 PreAndNextModel next = iProductService.getNextModel(productId, 
6                 productModel.getProCategoryId());

 

今天的文章Java获取文章的上一篇/下一篇分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/55488.html

(0)
编程小号编程小号
上一篇 2023-08-27 20:46
下一篇 2023-08-27

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注