忽略Thymeleaf中href中的空参数。

3

我有一个 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}))__)}"
1个回答

1
您可以尝试像这样:

<a th:with="search=${param.search}"
   th:href="@{/apps/role/__${pathVar}__(pathVar=${var.attribute}, __(${#strings.isEmpty(search)} ? '' : ('search=' + ${search}))__)}">
   Click Url
</a>

如果search参数不存在或为空,则不会添加。我使用的是*Thymeleaf版本3.0.12。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接