自我学习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>

原文地址:https://www.cnblogs.com/Mr-BING/p/10257424.html

时间: 2024-09-30 18:39:21

自我学习SSM框架集成(二)的相关文章

自我学习SSM框架集成(三)

关于事务管理 对于数据库的增删改查有时候要求两件事只能同时发生或者同时不发生,这时候就要使用事务管理 做事务管理需要额外的jar才行,所以先下载aspectjweaver.jar,并添加至Idea中. 然后再用以下两种方法进行实现 SSM事务管理的实现(一) 通过XML配置方式:修改applicationContext,以支持AOP方式 <!-- <tx:annotation-driven transaction-manager="transactionManager"/&

(*)(转)要快速学习SSM框架,你需要一套学习曲线平滑的教程

作者:meepo链接:https://www.zhihu.com/question/57719761/answer/156952139来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 要快速学习SSM框架,你需要一套学习曲线平滑的教程 1. 很快可以看到效果 SSM框架这种教程的,在百度或者git上一搜一大把,不过很遗憾,大部分你照着上面的流程做,是做不出来的,要么缺少包,要么配置文件漏了一个,要么本身就有问题.不仅浪费了你的时间,还会产生消极的作用,让你怀疑自己是

SSM框架集成.上(供自己练习查阅用)

1.创建项目 2.准备相关依赖包 2.1   spring相关jar包 2.2   springMVC相关jar包 2.3 mybatis 相关jar包 2.4mybatis 和spring集成的桥梁包 2.5数据库驱动包和连接池 2.6 jstl 标签库依赖包 2.7 mybatis支持的日志包 3.配置文件准备 4.mapper层(dao层代码) public interface UserMapper { int insert(User user); User selectByPrimary

SSM框架集成(附源码)

简述 SSM框架的集成主要是Spring和MyBatis的集成,SpringMVC和Spring天然集成. 1.在IDEA新建一个Maven项目 图1. 创建web-app 1.2 创建确实的文件夹,结构如下 图2.文件夹结构 2.添加相关依赖 2.1 配置pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.s

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

初衷与整理描述 Java高并发秒杀系统API是来源于网上教程的一个Java项目,也是我接触Java的第一个项目.本来是一枚c#码农,公司计划部分业务转java,于是我利用业务时间自学Java才有了本文,本来接触之初听别人说,c#要转java很容易,我也信了,但是真正去学习的时候还是踩了无数个坑,好在朋友有几个做安卓的,向他们讨教了一些经验,但是他们做安卓的和web又是两个方向,于是继续一个人默默采坑避雷之旅,首先上手的是下面这个Java高并发秒杀系统API. 学习java的初衷一个是公司转行,二

SSM+Maven(教程一):学习SSM框架的前提条件。

一.准备工作 二.环境准备 1.配置jdk:http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html Intelij中配置JDK:File-Project Structure 2.配置maven:http://www.cnblogs.com/qiuyong/p/6292678.html 3.Intelij配置git:.. 三.知识储备 参考Web初阶.Jsp/servlet.Mybatis系列.上述建议针对于刚入门的同学.特别是

SSM框架集成.下(供自己练习查阅用)

spring和springMVC集成 在web.xml配置前端springMVC前端控制器(总控) <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLo

从零搭建SSM框架(二)运行工程

启动cnki-manager工程 1.需要在cnki-manager 的pom工程中,配置tomcat插件.启动的端口号,和工程名称. 在cnki-manager的pom文件中添加如下配置: <!-- 配置tomcat插件 --> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-p

2016.5.19 SSM 框架(二) 工程结构思路

1. 所需Jar包: springmvc所需一系列包: spring 数据库驱动包: oracle驱动包 数据库包: oracle oracle 和spring整合包 日志包:log4j 数据库链接池包: dbcp spring 所需所有包 jstl包 aop 切面编程  jstl标签库 log4j~   junit   spring组件包  dbcp数据库 commons 系列jir包 springmvc组件包 mysql链接包 mybatis组件包   相关整合包 附加理解: 其一  Apa