th:href Thymeleaf使用Spring MVC重定向路径变量和对象id的url

时间:2016-02-09 01:48:02

标签: spring thymeleaf

所以我试图用th:href重定向整个网址,但是它添加了我不想要的字符。

我目前的网址是

http://localhost:8080/viewCourse/post/5

我试图回溯到帖子所属的课程,这是

http://localhost:8080/viewCourse/1

所以目前这就是我的html看起来像

<a th:href="@{'/viewCourse/'(${post.course.id})}"><span th:text="${post.course.name}"></span></a>

这是我得到的网址

http://localhost:8080/viewCourse/?1

ID是正确的,但我不确定为什么?就在那里。

我也试过这个

<a th:href="@{'/viewCourse/'(id=${post.course.id})}"><span th:text="${post.course.name}"></span></a>

这给了我这个

http://localhost:8080/viewCourse/?id=1

如果有人能够看到我如何解决这个问题,并且让我知道这会很棒,请提前感谢。

2 个答案:

答案 0 :(得分:4)

您可以通过字符串连接实现无问号添加ID

<a th:href="@{/viewCourse/} + ${post.course.id}"><span th:text="${post.course.name}"></span></a>

但我会建议研究这个答案https://stackoverflow.com/a/14938399/5900967

因为在某些情况下这可能会失败

答案 1 :(得分:2)

显然您的ID是作为参数添加的。

您的代码应如下所示:

<a th:href="@{/viewCourse/{id}(id=${post.course.id})}"><span th:text="${post.course.name}"></span></a>

输出应该是这样的:

http://localhost:8080/viewCourse/1

要了解有关百里香url语法的更多信息,请参见https://www.thymeleaf.org/doc/articles/standardurlsyntax.html