• 利用mybatis的分页插件实现商品列表的显示


    分析思路:

    当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能。

    首先首先我们先找到商品查询商品的按钮在jsp的那个页面,即首页index.jsp

    这里有个url即显示商品页面的l链接:

    找到item-list.jsp页面:

    这里有个跳转的url即/item/list

    通过此处我们可以利用@RequestMapping注解实现页面的跳转

    下面我们来分析下编码的实现:

    (1)第一步:考虑是否有参数传入,考虑是否有返回值。

    是否有参数传入:

    查询商品列表,我们是查询所有的商品,所以这里不根据具体的id来查询,是无条件查询。即显示所有商品。

    在mybatis中采用了分页查询的原理,而分页查询默认的是由参数的分页,即page和rows,所以这里需要两个参数。即page和rows。

    是否有返回值:

    这里查询商品,返回值肯定是商品的列表,即返回的pojo对象是商品

    而这里页面采用的easyui的datagrid空间显示商品的列表:返回值有固定的形式的json数据格式:

    {total:"2",rows:[{"id""1","name""张三"}{"id""2","name""张四"}]}的这种格式。

    json的返回数据,我们一般采用封装的形式将数据封装,可以看到这里的格式我们创建一个pojo对象,用来接收返回值的数据:

    这个pojo对象有两个属性:一个total,一个rows(rows是存放的list集合)


    public class EUDataGridResult {
    private int total;
    private List<?> rows;
    public int getTotal() {
    return total;
    }
    public void setTotal(int total) {
    this.total = total;
    }
    public List<?> getRows() {
    return rows;
    }
    public void setRows(List<?> rows) {
    this.rows = rows;
    }

    }

    用来装返回值。

    下一步的工作就是编码的实现了。

    (2)考虑controller、service、dao(mapper)层的业务逻辑实现。

    dao层是逆向工程生成的,我们只需要调用即可。

    controller层的实现:

    这一层主要是用来实现页面的跳转链接,接收参数,调用service,返回结果。

    public class ItemController {
    @Autowired
    private ItemService itemService;

    //返回商品查询信息,不要忘记是json格式的数据
    @RequestMapping("item/list")
    @ResponseBody
    public EUDataGridResult getItemList(Integer page,Integer rows){
    EUDataGridResult result=itemService.getItemList(page, rows);

    return result;
    }

    service层的实现:

    接收controller层传递过来的参数,调用mapper层;

    @Override
    public EUDataGridResult getItemList(int page, int rows) {
    TbItemExample example=new TbItemExample();
    //因为没有查询条件,所以不用criteria,直接查询
    //开始分页
    PageHelper.startPage(page, rows);
    List<TbItem> list=itemMapper.selectByExample(example);
    //返回一个pojo对象
    EUDataGridResult result=new EUDataGridResult();
    result.setRows(list);
    //取记录的总条数
    PageInfo<TbItem> pageInfo=new PageInfo<>(list);
    result.setTotal((int) pageInfo.getTotal());
    return result;
    }

    这里用到了分页插件工具,具体见前一篇文章。

    这是列表的显示功能分析。

  • 相关阅读:
    Topcoder 11351 TheCowDivOne
    Topcoder 14531 Softmatch
    Topcoder 13503 ConnectingGame
    CS Academy Round#5 E.Binary Matching
    洛谷 P5896 [IOI2016]aliens
    P5020 [NOIP2018 提高组] 货币系统
    P1868 饥饿的奶牛
    P3131 [USACO16JAN]Subsequences Summing to Sevens S
    P3959 [NOIP2017 提高组] 宝藏
    2021 Grade 8 whk Final-Test.(Summer) 复**况 & 文明观猴
  • 原文地址:https://www.cnblogs.com/fengli9998/p/6122445.html
Copyright © 2020-2023  润新知