我正在使用thymeleaf和springmvc。我想添加一个语言参数来改变区域设置。我是这样做的:
<a th:href="@{${currentUrl}(lang='es_ES')}" th:if="__${#locale}__ != 'es_ES'" >Sp</a>
<a th:href="@{${currentUrl}(lang='en_US')}" th:if="__${#locale}__ != 'en_US'" >Eng</a>
但是在一些视图中,我的URL中有参数,如何添加参数?我知道当我遇到特定的参数时如何添加:
<a th:href="@{${currentUrl}(fooParam = ${fooValue}, lang='es_ES')}" th:if="__${#locale}__ != 'es_ES'" >Sp</a>
但是我不知道所有视图中所有参数的个数和名称,如何才能得到当前url的所有参数?
2条答案
按热度按时间tkclm6bt1#
您可以尝试创建一个实用程序服务来构建您的URL的params部分。该实用程序方法将从List获取输入并通过StringBuffer构建一个String。结果将是一个String,当您手动编写param时,它将被写为。现在您可以使用thymeleaf中内置的Pre-Parser语法来调用该实用程序并构建您的最终URL。下面是示例:
公用事业
用于测试它的控制器
测试的Html模板:
这是你从这个例子中得到的结果:
现在您可以自定义这个示例以适合您的代码,例如解析Map而不是List或String...
vfhzx4xs2#
如果您正在寻找 *thymeleaf template only版本 *,您可以将
${#request.getRequestURI()}
与${#request.getQueryString()}
一起使用,并通过连接添加其他参数:有关详细信息,请参见https://stackoverflow.com/a/75103428/2590616