如何判断Thymeleaf模板的URL是否包含指定字符串
解决方案
你的实现思路是可行的,利用Thymeleaf的字符串工具方法结合请求URI判断,就能实现根据URL内容控制锚点显示的需求。
代码优化建议
- 可以用更简洁的
${#request}替代${#httpServletRequest},二者功能一致 - 若需避免大小写问题,可改用
#strings.containsIgnoreCase方法 - 若要精准匹配路径段(比如防止类似
subordinatesabc的误判),可以用正则匹配
基础优化版代码
<div th:if="${#strings.contains(#request.requestURI, 'subordinates')}"> <a href="/employees/list">employee directory</a> </div>
精准路径匹配版(正则)
<div th:if="${#strings.matches(#request.requestURI, '.*\\/subordinates\\/.*')}"> <a href="/employees/list">employee directory</a> </div>
补充说明
requestURI获取的是域名后的路径部分(例如你的示例中就是/employees/subordinates/1),完全满足你判断是否包含subordinates的需求,无需处理完整URL。模板中的"是HTML转义字符,直接使用双引号也可,只要保证HTML结构合法即可。
内容的提问来源于stack exchange,提问作者Clarius
相关产品推荐
相关产品推荐

