自我学习SSM框架集成

Posted mr-bing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自我学习SSM框架集成相关的知识,希望对你有一定的参考价值。

手动SQL方式分页 

 

一.首先来看看最重要的Page类。

首先我们让start默认为0,count=5。count为一页的容量,而令start为0,是如果浏览器访问不输入start参数就默认为从头开始浏览页信息

而public void caculateLast是用来获取最后一页的开始 ,这样就可以一键点到最后一页

public class Page {
 
    int start=0;
    int count = 5;
    int last = 0;
    public int getStart() {
        return start;
    }
    public void setStart(int start) {
        this.start = start;
    }
    public int getCount() {
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
    public int getLast() {
        return last;
    }
    public void setLast(int last) {
        this.last = last;
    }
     
    public void caculateLast(int total) {
        // 假设总数是50,是能够被5整除的,那么最后一页的开始就是45
        if (0 == total % count)
            last = total - count;
        // 假设总数是51,不能够被5整除的,那么最后一页的开始就是50
        else
            last = total - total % count;      
    }
 
}

 

 

二、然后再看控制器

控制器先拦截路径/listCategory的访问,然后Spring将自动注入一个Page,若有start参数则是start参数,若没有则start=0

package com.how2java.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.how2java.pojo.Category;
import com.how2java.service.CategoryService;
import com.how2java.util.Page;

// 告诉spring mvc这是一个控制器类
@Controller
@RequestMapping("")
public class CategoryController {
    @Autowired
    CategoryService categoryService;

    @RequestMapping("listCategory")
    public ModelAndView listCategory(Page page){

        ModelAndView mav = new ModelAndView();
        List<Category> cs= categoryService.list(page);
        int total = categoryService.total();

        page.caculateLast(total);

        // 放入转发参数
        mav.addObject("cs", cs);
        // 放入jsp路径
        mav.setViewName("listCategory");
        return mav;
    }

}

 

其中通过.list.(page)来获取查询也得Category内容,这里跳过中间步骤直接看其SQL语句

这里通过start 和count则可获取Page里的内容,并List来捕捉获取集合。

    <select id="list" resultType="Category">
        select * from   category_
        <if test="start!=null and count!=null">
            limit #{start},#{count}
        </if>
    </select>

而int total = categoryService.total();则是将最后一页的第一个内容注入Page类

 

 

三、最后则跳转到页面  这里代码就不解释了

<div style="width:500px;margin:0px auto;text-align:center">
    <table align=‘center‘ border=‘1‘ cellspacing=‘0‘>
        <tr>
            <td>id</td>
            <td>name</td>
        </tr>
        <c:forEach items="${cs}" var="c" varStatus="st">
            <tr>
                <td>${c.id}</td>
                <td>${c.name}</td>
            </tr>
        </c:forEach>
    </table>
    <div style="text-align:center">
        <a href="?start=0">首  页</a>
        <a href="?start=${page.start-page.count}">上一页</a>
        <a href="?start=${page.start+page.count}">下一页</a>
        <a href="?start=${page.last}">末  页</a>
    </div>
</div>

 

以上是关于自我学习SSM框架集成的主要内容,如果未能解决你的问题,请参考以下文章

SSM-框架搭建-tank后台学习系统

集成代码生成器 单表 多表 树形表 一对多 springmvc spring mybatis SSM 后台框架

SSM框架集成(附源码)

SSM框架

java SSM框架 代码生成器 websocket即时通讯 shiro redis 后台框架源码

Java高并发秒杀系统API之SSM框架集成swagger与AdminLTE