当前页面叫什么名字?Thymeleaf和你知道的一样——thymeleaf中使用url路径进行锚链接当前页

注:本文所需图片或者文件都在文章末尾处

小编最近开发出现一个问题,借鉴百度前人的经验和自己的一些思考,总算把Bug解决掉。虽然问题看起来容易,但是加上自己的思考,最后还是能想出,看来自己摸索的时间挺久的。在此,为了能减少大家遇到同样问题摸索的时间,如果确实能够帮到您的话,小编倍感荣幸。

至于什么问题让小编有所困惑呢?——所有Thymeleaf页面能锚链接到当前页面的某个位置,而且只能在一个页面上写。

我们使用SpringBoot+Thymeleaf技术时,Thymeleaf是通过Controller进行页面访问的,Controller可以向Thymeleaf发送数据进行页面的交互。问题是要进行所有本页面的跳转,那本页面的名称Thymeleaf又怎么能知道呢?貌似可以用每一个Controller发送页面名称到Thymeleaf里面,

这样每一个Thymeleaf就可以用到当前页面名称了,问题得以解决。小编在百度摸索试过了很多次之后,隐约有这种想法,如果使用这种方法,那真的大错特错了,因为还有更好的方法。

怎么玩呢?直接上代码:

正确的步骤:

注:把页面的头部和尾部独立抽取出来,使用时引入即可。

head.html中js代码

代码的意思不清楚,先完成再细讲。

​​head.html中的a标签

#foot锚链接位置:

foot.html里的锚链接

结果小编亲测有效,重要的是懂逻辑。我把Thymeleaf里的headfoot独立分离出来,然后在Thymeleaf引入,只要在head.html设置了本页面的锚链接,那么所有Thymeleaf页面都能锚链接到当前页面的某个位置,这是个技巧。然后上面的代码逻辑,小编解释一下:

当前页的包括参数的路径,浏览器url的值可以在Thymeleaf页面这样得出:

浏览器url的值

#httpServletRequest.requestURL 使用的是Thymeleaf的内置对象形式,真实值就是浏览器访问当前页路径.html结尾前的值。例如本地访问index.html页面,那么#httpServletRequest.requestURL值为

http://localhost/index.html

后面?代表着url连接的参数:

#httpServletRequest.queryString就是参数的值,比如参数是name,值为jackson,那么<div th:text="${#httpServletRequest.requestURL +'?'+ #httpServletRequest.queryString}"></div>输出结果为:

http://localhost/index.html?name=jackson

 

在此,有一个问题,${#httpServletRequest.requestURL +'?'+ #httpServletRequest.queryString}是用<div th:text="这里"></div>中写出结果,那我们在<a th:href="值"></a>能否写出并跳转?显然th:href中套用th:text是不合理的,当然方法还是有的。

通过javascript的方式把url的值传到a标签中的href中,首先引入jquery文件,然后是在script标签写上th:inline="javascript",正确如下:

<script type="text/javascript" th:inline="javascript">

然后这样:

<script type="text/javascript" th:inline="javascript">
        /*<![CDATA[*/
        var basePath = /*[[${#httpServletRequest.requestURL +'#foot'}]]*/;
           $(".sandian").attr("href",basePath);
        /*]]>*/
</script>

注意:  /*<![CDATA[*//*]]>*/必须在<script></script>内写上,然后在/*[[]]*/添加引入的值,否则<script></script>不解析。

然后赋值给<a href=""></a>内的href属性,这样就完成问题所需代码的逻辑。然后就没有然后了。

至此,所有代码全部解决。当然,还需要上述所需的jquery文件,等等,不要急。

1、jquery-1.11.3.min.js文件:

jquery-1.11.3.min.js文件下载 提取码:6666

 

结束语

今天就总结小编我自主开发的第八课:

1、虽然本文是小编第八篇博客,但内容简单实用,也希望这篇博客能对您有所感触。

2、在java的成长之路上,往往细节也能成就你的大好前途,养成知识共享往往能提高你的价值。

3、面对困难,要能砥砺前行,不畏惧,方能有所突破。

4、小编也是刚进入java行业大军里面的,内容有疏忽请指正,小编感激不尽。

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页