springboot+freemarker+pagehelper分页

首先是springboot版本,使用的是2.1.6,随后导入pagehelper,pagehelper能找到两种,这里使用pagehelper-spring-boot-starter 1.2.5,另一个测试了一下没有生效。pagehelper使用默认配置即可使用。然后是freemarker,导入后需要设置配置文件。

完整依赖如下

 

        <!-- freemarker -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!-- pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>

        <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>

 

freemarker的配置根据网上搜到的直接用即可,需要注意的地方是这里

spring.freemarker.settings.number_format=#

如果不进行这个设置,比较大的数字会带有逗号,例如:9,999

这种格式的数字无法直接使用,需要去掉逗号,所以不要忘记在配置中加上这一条。

具体使用如下:

    @RequestMapping("/show")
    public String t(Map<String, Object> map,@RequestParam(value="pageNum",defaultValue="1")Integer pageNum,
                    @RequestParam(value="pageSize",defaultValue="3")Integer pageSize){
        map.put("test", "It's a springboot integrate freemarker's demo!!!!");
        PageHelper.startPage(pageNum, pageSize);

        //拿到所有用户数据
        List<Body> list = bodyService.findAll();
        //将查询到的数据放入pagehepler中
        PageInfo<Body> pageInfoUser = new PageInfo<Body>(list);
        map.put("bodylist" ,pageInfoUser);
        // 将查询到的数据存到返回

        return "main";
    }

前台页面:

<!DOCTYPE html>
<html lang="zh">
<head>
    <META http-equiv=Content-Type content='text/html; charset=UTF-8'>
    <title>Title</title>
    <style type="text/css">
        table.reference, table.tecspec {
            border-collapse: collapse;
            width: 100%;
            margin-bottom: 4px;
            margin-top: 4px;
        }

        table.reference tr:nth-child(even) {
            background-color: #fff;
        }

        table.reference tr:nth-child(odd) {
            background-color: #f6f4f0;
        }

        table.reference th {
            color: #fff;
            background-color: #0dcde8;
            border: 1px solid #555;
            font-size: 12px;
            padding: 3px;
            vertical-align: center;
        }

        table.reference td {
            line-height: 2em;
            min-width: 24px;
            border: 1px solid #d4d4d4;
            padding: 5px;
            padding-top: 7px;
            padding-bottom: 7px;
            vertical-align: center;
            text-align: center;
        }

        .article-body h3 {
            font-size: 1.8em;
            margin: 2px 0;
            line-height: 1.8em;
        }

        .active {
            font-size: 18px;
            background-color: #0dcde8;
        }

        #nav {
            height: 65px;
            border-top: #060 2px solid;
            border-bottom: #060 2px solid;
            background-color: #8a858566;
        }

        #nav ul {
            list-style: none;
            margin-left: 50px;
        }

        #nav li {
            display: inline;
            line-height: 40px;
            float: left
        }

        #nav a {
            color: #0a0a0a;
            text-decoration: none;
            padding: 20px 20px;
        }

        #nav a:hover {
            background-color: #060;
        }
    </style>
</head>
<body>

<div>
    <table class="reference">
        <tbody>

        <tr>
            <th>ID</th>
            <th>编号</th>
            <th>厂家</th>
            <th>项目</th>
            <th>判定</th>
            <th>上月平均</th>

        </tr>
        ${bodylist}
        <#list bodylist.list as element>
            <tr>
                <td>
                    ${element.id}
                </td>
                <td>
                    ${element.cybh}
                </td>
                <td>
                    ${element.sszzq}
                </td>
                <td>
                    ${element.jyxm}
                </td>
                <td>
                    ${element.jgpd}
                </td>
                <td>
                    ${element.cydd1}
                </td>

            </tr>
        </#list>
        <br>
        </tbody>
    </table>
    <div class="message">
        共<i class="blue">${bodylist.total}</i>条记录,当前显示第&nbsp;<i
                class="blue">${bodylist.pageNum}/${bodylist.pages}</i>&nbsp;页
    </div>
    <div style="text-align:center;" id="nav">
        <ul>
            <#if bodylist.isFirstPage==false>
                <li><a href="./show">首页</a></li>
                <li><a href="./show?pageNum=${bodylist.prePage}">上一页</a></li>
            </#if>
            <#list bodylist.navigatepageNums as element>
                <#if element==bodylist.pageNum>
                    <li class="active"><a href="./show?pageNum=${element}">${element}</a></li>
                </#if>
                <#if element!=bodylist.pageNum>
                    <li><a href="./show?pageNum=${element}">${element}</a></li>
                </#if>
            </#list>

            <#if bodylist.isLastPage==false>
                <li><a href="./show?pageNum=${bodylist.nextPage}">下一页</a></li>
                <li><a href="./show?pageNum=${bodylist.pages}">最后一页</a></li>
            </#if>
        </ul>
    </div>
</div>
</body>
</html>

最终效果图

标题

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于构建独立的、基于生产级别的Spring应用程序的框架。而Freemarker是一种模板引擎,用于生成动态内容,特别适合Web应用程序的开发。在Spring Boot中使用Freemarker可以通过引入相应的依赖和配置来实现。 首先,在Spring Boot工程中引入Freemarker依赖。可以通过在pom.xml文件中添加以下依赖来实现: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 这样,在工程中就可以使用Freemarker来处理模板了。如果想要修改模板文件的位置等配置,可以在application.properties文件中进行配置。比如可以通过以下配置来指定模板文件的位置: ``` spring.freemarker.allow-request-override=false spring.freemarker.allow-session-override=false spring.freemarker.cache=false spring.freemarker.charset=UTF-8 spring.freemarker.check-template-location=true spring.freemarker.content-type=text/html spring.freemarker.expose-request-attributes=false spring.freemarker.expose-session-attributes=false spring.freemarker.suffix=.ftl spring.freemarker.template-loader-path=classpath:/templates/ ``` 这样,Spring Boot就会根据这些配置来加载并解析模板文件,生成相应的动态内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Spring Boot 整合 Freemarker](https://blog.csdn.net/yaxuan88521/article/details/117173289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Springboot整合FreeMarker](https://blog.csdn.net/m0_67402096/article/details/126114796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值