关于Thmleaf中<a th:href=““></a>超链接传参注意事项

今天使用Thymeleaf前端模板,在做分页条件查询的时候,出现了传参问题,就此记录一下,希望能帮助到正在看本篇文章的你

下面是分页中单击下一页的源代码

<a th:if="${page.hasNextPage}" th:href="@{'/players/page/getAll/'+${page.nextPage}+'?pName='${session.likeName}}">下一页</a>

大家都知道在使用**@{}中如果需要使用上下文中的信息时@{}**大括号中的路径是需要使用单引号包括起来,上下文路径单独使用 + 号拼接,路径中page是后端Model传递过来的分页数据,后面我需要传参第一次查询后的模糊数据,以保证分页查询的条件不丢失将数据储存在session中,每次查询后都会覆盖此session;

问题就出在这里吗,当我用**‘?pName=’${session.likeName}**问号拼接数据后
在这里插入图片描述
后端对应的方法
在这里插入图片描述
可以看出并不是我们想要的结果

当我们模糊查询过之后

在这里插入图片描述
点击下一页的超链接是需要这种效果

解决办法

Thymleaf本身有配套传参的规则

地址栏中带问号:

单参数:
<a th:if="${page.hasNextPage}" th:href="@{'/players/page/getAll/1'(pName=${session.likeName})}">下一页</a>

多参数:
<a th:if="${page.hasNextPage}" th:href="@{'/players/page/getAll/1'(pName=${session.likeName},cId=${session.cId})}">下一页</a>

RESTFUL风格:

在这里插入代码单参数:
<a th:if="${page.hasNextPage}" th:href="@{'/players/page/getAll/1/{pName}'(pName=${session.likeName})}">下一页</a>

多参数:
<a th:if="${page.hasNextPage}" th:href="@{'/players/page/getAll/1/{pName}/{cId}'(pName=${session.likeName},cId=${session.cId})}">下一页</a>

我这里使用的是带问号的传参方式

<a th:if="${page.hasNextPage}" th:href="@{'/players/page/getAll/'+${session.nextPage}(pName=${session.likeName})}">下一页</a>

在这里插入图片描述

一定要仔细检查路径 ’ '" ",/,单引号双引号斜杆是最不引人注意的,一个小细节就要查好久;

还有在使用的时候在**@{}大括号结尾处如有使用上下文中的信息,也就是${}**,在它括回来的}会直接替换掉@{}的回括号}。

完整分页可以看下,有问题可以留下评论

<div>
        <p>
            <a th:if="${page.hasPreviousPage}" th:href="@{/players/page/getAll/1(pName=${session.likeName})}">首页</a>
            <a th:if="${page.hasPreviousPage}" th:href="@{'/players/page/getAll/'+${page.prePage}(pName=${session.likeName})}">上一页</a>
            <a th:each="num : ${page.navigatepageNums}" th:href="@{'/players/page/getAll/'+${num}(pName=${session.likeName})}" th:text=" ${num} "></a>
            <a th:if="${page.hasNextPage}" th:href="@{'/players/page/getAll/'+${page.pages}(pName=${session.likeName})}">末页</a>
            <a th:if="${page.hasNextPage}" th:href="@{'/players/page/getAll/'+${session.nextPage}(pName=${session.likeName})}">下一页</a>
            <span th:text="'第'+${page.pageNum}+'页'"></span>
            <span th:text="'共'+${page.pages}+'页'"></span>
        </p>
    </div>
``

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值