我有一个 href 链接:
th:href="@{/apps/role/{pathVar}(pathVar=${var.attribute}, search=${param.search})}"
代码本来就能正常运行,但我想在搜索参数为空时隐藏它,以使URL看起来更简洁。
例如:
- param.search = 'test' => url =
"../apps/role/varAttr?search=test"
- param.search = '' => url =
"../apps/role/varAttr"
我看到了这篇文章,但无论我尝试什么都不能让它按我的意愿工作。可能与pathvariable
有关,但我真的很茫然。
我尝试过:
th:href="@{/apps/role/{pathVar}(pathVar=${var.attribute}, __(${param.search}=''?','search=${param.search})__)}
th:href="@{/apps/role/{pathVar}(pathVar=${var.attribute}, __(${param.search}=''?,search=${param.search})__)}
以及一些更加令人绝望的尝试。
编辑:我使用的是Thymeleaf 3.0.11版本。
解决方案:
标记的解决方案对我并没有完全起作用,但这个解决方案可以。
我只是省略了路径变量中的第一对"__"
。
th:with="search=${param.search}"
th:href="@{/apps/role/{pathVar}(pathVar=${var.attribute}, __(${#strings.isEmpty(search)} ? '' : ('search=' + ${search}))__)}"