最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot用thymeleaf模板的paginate分頁(yè)完整代碼

 更新時(shí)間:2017年07月31日 11:07:34   作者:若星漢浮云  
本文根據(jù)一個(gè)簡(jiǎn)單的user表為例,展示 springboot集成mybatis,再到前端分頁(yè)完整代碼,需要的朋友可以參考下

本文根據(jù)一個(gè)簡(jiǎn)單的user表為例,展示 springboot集成mybatis,再到前端分頁(yè)完整代碼(新手自學(xué),不足之處歡迎糾正);

先看java部分

pom.xml 加入 

<!--支持 Web 應(yīng)用開(kāi)發(fā),包含 Tomcat 和 spring-mvc。 -->
    <dependency>      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
<!--模板引擎-->
    <dependency>      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
 <!--Mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.2.2</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.2.8</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.2</version>
    </dependency>
    <!-- mybatis pagehelper -->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>3.6.3</version>
    </dependency>
    <!--Mysql / DataSource-->
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-jdbc</artifactId>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!--springboot 集成Mybatis所需jar配置 end-->

application.properties文件

spring.datasource.platform=mysql
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
# Advanced configuration...
spring.datasource.max-active=50
spring.datasource.max-idle=6
spring.datasource.min-idle=2
spring.datasource.initial-size=6
#create table
spring.jpa.hibernate.ddl-auto=validate
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html 
spring.thymeleaf.cache=false

啟動(dòng)類 Application.java

@SpringBootApplication
@MapperScan("com.boot.mapper")
public class Application { 
   //定義一個(gè)全局的記錄器,通過(guò)LoggerFactory獲取
  private final static Logger logger = LoggerFactory.getLogger(Application.class); 
   
  //----------------------------mybaits配置start-------------------------------------------
  //DataSource
  @Bean
  @ConfigurationProperties(prefix="spring.datasource")
  public DataSource dataSource() {
    return new org.apache.tomcat.jdbc.pool.DataSource();
  }
  //SqlSessionFactory
  @Bean
  public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
 
    SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
    sqlSessionFactoryBean.setDataSource(dataSource());
 
    PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
 
    sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
 
    return sqlSessionFactoryBean.getObject();
  }
  @Bean
  public PlatformTransactionManager transactionManager() {
    return new DataSourceTransactionManager(dataSource());
  }
  //------------------------------mybaits配置end---------------------------------
  public static void main(String[] args){ 
    System.out.println("Hello World!"); 
    SpringApplication.run(Application.class, args); 
  } 
} 

以一個(gè)簡(jiǎn)單的user對(duì)象為例

private Integer id;
  private String name;
  private String password;

controller層

@RestController
public class UserController {
  @Autowired
  UserService uSer;
  @RequestMapping("userlist")
  public Object userlist(@RequestParam(value="pageon",defaultValue="1")int pageon
      ,ModelAndView mv){
    mv.addAllObjects(uSer.UserList(pageon));
    return mv;
  }
}

service層

public Map<String, Object> UserList(int pageon) {
    // TODO Auto-generated method stub
    Map<String,Object> map=new HashMap<String, Object>();
    Page page=new Page(pageon);
    page.setRowcountAndCompute(userMapper.selectPageListCount(null));
    map.put("page", page);
    map.put("list", userMapper.selectPageList(map));
    return map;
  }

UserMapper.xml

<select id="selectPageList" parameterType="java.util.Map" resultMap="BaseResultMap" >
  select id, name, password from user order by id limit #{page.start},#{page.row}
 </select>
 <select id="selectPageListCount" parameterType="java.util.Map" resultType="int" >
  select count(1) from user
 </select>

到此時(shí)后臺(tái)代碼結(jié)束

附加個(gè)page工具類

package com.boot.utils;
import java.io.Serializable;
public class Page implements Serializable {
  /**
   * 
   */
  private static final long serialVersionUID = 1L;
  public int getPageon() {
    return pageon;
  }
  public void setPageon(int pageon) {
    this.pageon = pageon;
  }
  public int getRowcount() {
    return rowcount;
  }
  public void setRowcount(int rowcount) {
    this.rowcount = rowcount;
  }
  public int getPagecount() {
    return pagecount;
  }
  public void setPagecount(int pagecount) {
    this.pagecount = pagecount;
  }
  public int getRow() {
    return row;
  }
  public void setRow(int row) {
    this.row = row;
  }
  public Page(int pageon, int row, int rowcount) {
    pageNumber = 11;
    this.pageon = pageon;
    this.row = row;
    this.rowcount = rowcount;
    compute();
  }
  public Page(int pageon, int row) {
    pageNumber = 11;
    this.pageon = pageon;
    this.row = row;
  }
  public Page(int pageon) {
    pageNumber = 11;
    this.pageon = pageon;
  }
  public Page() {
    pageNumber = 11;
  }
  public int getPageNumber() {
    return pageNumber;
  }
  public void setPageNumber(int pageNumber) {
    this.pageNumber = pageNumber;
  }
  public void compute() {
    if (rowcount <= 0)
      return;
    if (row <= 0)
      row = 10;
    pagecount = rowcount % row != 0 ? rowcount / row + 1 : rowcount / row;
    if (pageon > pagecount)
      pageon = pagecount;
    if (pageon < 1)
      pageon = 1;
    start = (pageon - 1) * row;
    end = pageon * row;
    if (end > rowcount)
      end = rowcount;
  }
  public int getStart() {
    return start;
  }
  public void setStart(int start) {
    this.start = start;
  }
  public int getEnd() {
    return end;
  }
  public void setEnd(int end) {
    this.end = end;
  }
  public void setRowcountAndCompute(int rowcount) {
    this.rowcount = rowcount;
    compute();
  }
  protected int pageon;
  protected int rowcount;
  protected int pagecount;
  protected int row;
  protected int start;
  protected int end;
  protected int pageNumber;
}

前端代碼開(kāi)始

statis目錄下加入如下幾個(gè)文件

在templates目錄下建立一個(gè)前端分頁(yè)工具頁(yè)面 page.html,(雖然代碼不多,封裝這點(diǎn)東西花費(fèi)我半天時(shí)間?。。?/p>

<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:th="http://www.thymeleaf.org">
<head th:fragment="page">
<link rel="stylesheet" th:href="@{/css/pagestyle.css}" rel="external nofollow" />
<script type="text/javascript" th:src="@{/js/jquery-3.1.1.min.js}"></script>
<script type="text/javascript" th:src="@{/js/jquery.paginate.js}"></script>
<script th:inline="javascript">
(function($) {
  /*<![CDATA[*/
  var count=[[${page.pagecount}]];
  var start=[[${page.pageon}]];
  /*]]>*/
  var url=$("#page").attr('url');
  var displaycnt=count>10?10:count;
  fenye(count,start,url,displaycnt);
})(jQuery);
  function fenye(count,start,url,displaycnt){
    /*<![CDATA[*/
    if(count<2) 
    return;
    /*]]>*/
    $("#page").paginate({
      count     : count,
      start     : start,
      display   : displaycnt,
      border          : true,
      border_color      : '#fff',
      text_color       : '#fff',
      background_color    : 'pink',  
      border_hover_color    : '#ccc',
      text_hover_color     : '#000',
      background_hover_color  : '#fff', 
      images          : true,
      mouse          : 'press',
      onChange: function(page_index) { 
        var tourl;
        /*<![CDATA[*/
        if(url.indexOf('?')>0)
          tourl=url+'&pageon='+page_index;
        else
          tourl=url+'?pageon='+page_index;
          window.location.href=tourl;
        /*]]>*/
      }
    });
  };
</script>
</head>
</html>

接下來(lái)就是引用分頁(yè)插件了。

在templates目錄下建立userlist.html.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>用戶列表</title>
</head>
<body>
<div style="width: 1000px;" >
  <table style="border-width: 1px;border-style: dashed;">
    <tr>
      <td>ID</td>
      <td>姓名</td>
      <td>密碼</td>
    </tr>
    <p th:each="user:${list}">
    <tr>
      <td th:text="${user.id}">ID</td>
      <td th:text="${user.name}">姓名</td>
      <td th:text="${user.password}">密碼</td>
    </tr>
    </p>
  </table>
  <div id="page" url="/userlist" ></div>
  <div th:replace="page :: page"></div>
</div>
</body>
</html>

可以看到 引用分頁(yè)的代碼 只有兩句,是不是很好用

<div id="page" url="/userlist" ></div>
<div th:replace="page :: page"></div>

相關(guān)文章

  • mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問(wèn)題

    mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問(wèn)題

    這篇文章主要介紹了mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-02-02
  • SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解

    SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解

    這篇文章主要介紹了SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Spring Boot異步輸出Logback日志方法詳解

    Spring Boot異步輸出Logback日志方法詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot異步輸出Logback日志的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 解決springboot項(xiàng)目不配置數(shù)據(jù)源啟動(dòng)報(bào)錯(cuò)問(wèn)題

    解決springboot項(xiàng)目不配置數(shù)據(jù)源啟動(dòng)報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了解決springboot項(xiàng)目不配置數(shù)據(jù)源啟動(dòng)報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot 圖形驗(yàn)證碼的生成和校驗(yàn)

    SpringBoot 圖形驗(yàn)證碼的生成和校驗(yàn)

    隨著系統(tǒng)和業(yè)務(wù)的不停升級(jí),前后端代碼放在一起的項(xiàng)目越來(lái)越臃腫,已經(jīng)無(wú)法快速迭代和職責(zé)區(qū)分了,于是紛紛投入了前后端分離的懷抱,發(fā)現(xiàn)代碼和職責(zé)分離以后,開(kāi)發(fā)效率越來(lái)越高了,但是以前的驗(yàn)證碼登錄方案就要更改了。本文來(lái)看一下SpringBoot 圖形驗(yàn)證碼的生成和校驗(yàn)
    2021-05-05
  • MyBatis通用Mapper中的通用example(排序)詳解

    MyBatis通用Mapper中的通用example(排序)詳解

    這篇文章主要介紹了MyBatis通用Mapper中的通用example(排序)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java字符串中指定部分反轉(zhuǎn)的三種方式

    Java字符串中指定部分反轉(zhuǎn)的三種方式

    一些面試官可能在面試Java基礎(chǔ)的時(shí)候,讓你說(shuō)一下字符串反轉(zhuǎn),會(huì)手撕代碼,所以下面這篇文章主要給大家介紹了關(guān)于Java字符串中指定部分反轉(zhuǎn)的三種方式,需要的朋友可以參考下
    2022-01-01
  • Spring MVC Annotation驗(yàn)證的方法

    Spring MVC Annotation驗(yàn)證的方法

    這篇文章主要介紹了Spring MVC Annotation驗(yàn)證的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Java中常見(jiàn)的XML解析方法與應(yīng)用詳解

    Java中常見(jiàn)的XML解析方法與應(yīng)用詳解

    XML(eXtensible Markup Language)是一種用于存儲(chǔ)和傳輸數(shù)據(jù)的標(biāo)記語(yǔ)言,被廣泛應(yīng)用于表示和交換獨(dú)立于應(yīng)用程序和硬件平臺(tái)的結(jié)構(gòu)化信息,下面我們就來(lái)看看它的常見(jiàn)解析方法有哪些吧
    2024-01-01
  • Maven分模塊開(kāi)發(fā)與依賴管理和聚合和繼承及屬性深入詳細(xì)介紹

    Maven分模塊開(kāi)發(fā)與依賴管理和聚合和繼承及屬性深入詳細(xì)介紹

    依賴管理是項(xiàng)目管理中非常重要的一環(huán)。幾乎任何項(xiàng)目開(kāi)發(fā)的時(shí)候需要都需要使用到庫(kù)。而這些庫(kù)很可能又依賴別的庫(kù),這樣整個(gè)項(xiàng)目的依賴形成了一個(gè)樹(shù)狀結(jié)構(gòu),而隨著這個(gè)依賴的樹(shù)的延伸和擴(kuò)大,一系列問(wèn)題就會(huì)隨之產(chǎn)生
    2022-10-10

最新評(píng)論

尼勒克县| 龙口市| 朝阳县| 平山县| 甘德县| 鲜城| 务川| 边坝县| 上杭县| 五家渠市| 青田县| 闻喜县| 富蕴县| 乐山市| 清流县| 乌鲁木齐市| 宁陵县| 弋阳县| 德庆县| 当涂县| 凉城县| 电白县| 阿拉善盟| 神木县| 邓州市| 依兰县| 西乡县| 松原市| 公安县| 汽车| 修水县| 吴旗县| 溧水县| 拉萨市| 桐乡市| 桃园县| 黄石市| 邢台县| 崇仁县| 察隅县| 永嘉县|