Thymeleaf 构造 URL 与变量
我有以下代码在我的控制器中设置一个变量:
model.set("type", type);
在 thymeleaf 视图中,我想使用操作 url 构造一个表单:
/mycontroller/{type}
任何想法如何实现这一目标?我读过百里香叶文档,但没有运气。
我有以下代码在我的控制器中设置一个变量:
model.set("type", type);
在 thymeleaf 视图中,我想使用操作 url 构造一个表单:
/mycontroller/{type}
任何想法如何实现这一目标?我读过百里香叶文档,但没有运气。
正如user482745在评论中建议的那样(现已删除),我之前建议的字符串串联
<form th:action="@{/mycontroller/} + ${type}">
在某些 Web 上下文中会失败。
Thymeleaf 使用 LinkExpression
来解析表达式。在内部,这使用HttpServletResponse#encodeURL(String)。
。它的 javadoc 状态@{..}
对于可靠的会话跟踪,servlet 发出的所有 URL 都应通过此方法运行。否则,URL重写不能与不支持cookie的浏览器一起使用。
在通过 URL 完成会话跟踪的 Web 应用程序中,该部分将追加到在追加 之前发出的字符串中。你不想要这个。@{..}
${..}
相反,请按照文档中的建议使用路径变量
您还可以以路径变量的形式包含参数,类似于普通参数,但在 URL 的路径中指定占位符:
<a th:href="@{/order/{id}/details(id=3,action='show_all')}">
所以你的例子会看起来像这样
<form th:action="@{/mycontroller/{path}(path=${type})}"> //adding ending curly brace