思路:每次查询详情返回三条数据信息,当前对象,上一条与下一条的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