java th:href带我去了错误的地址

4zcjmb1e  于 2023-06-28  发布在  Java
关注(0)|答案(2)|浏览(95)

我有两个HTML标记,一个创建配置文件的名字,姓氏,电子邮件和密码。也在同一HTML标记,所有配置文件的列表发布了一个链接到第二个HTML表单,在该人已经收到有关配置文件的信息,正如你所理解的,为了获得第二个表单,你需要点击链接,事实是,通过id它是完全找到和工作几乎一切完美,但有一件事,它把我带到这个页面:

localhost:8080/profiles/?1

因此,我不接收信息,为了接收它,我必须手动更改链接到:

localhost:8080/profiles/1

我有一个问题,我做错了什么,为什么会发生这种情况?
profiles.html:

<div th:method="GET" th:action="@{/profiles/{id}}" th:object="${profileById}">
<p th:text="*{firstName}">
<p th:text="*{lastName}">
<p th:text="*{email}">
</div>

main.html:

<form th:method="POST" th:action="@{/profiles}" th:object="${profile}">
<input type="text" placeholder="Input First Name:" th:field="*{firstName}"/>
<input type="text" placeholder="Input Last Name:" th:field="*{lastName}"/>
<input type="email" placeholder="Input Email:" th:field="*{email}"/>
<input type="password" placeholder="Input Password:" th:field="*{password}"/>
<button type="submit">Create Profile</button>
</form>

<div th:each="profiles : ${profiles}">
<a th:href="@{/profiles/(${profiles.id})}" th:text="*{profiles.firstName}"></a>
</div>

我看不出从controllers \ services和repository中删除信息有多大意义,问题是,正如我前面指出的,th:href把我扔给
配置文件/?1
而不是
profiles/1 -I need it here

  • 感谢您的关注 *
moiiocjp

moiiocjp1#

根据标准URL语法,路径变量的正确语法如下所示:

@{/profiles/{id}(id=${profiles.id})}
n3ipq98p

n3ipq98p2#

我部分地解决了我的问题,现在通过点击链接,我去HTML标记,在那里我得到我需要的信息,但现在,由于一些未知的原因,一个小问题出现在URL中,甚至不能被称为问题,但我仍然想知道如何解决它。我一有消息就回来。
网址:

http://localhost:8080/profiles/$%7Bprofiles.id%7D?id=1

main.html:

<div th:each="profiles : ${profiles}">
<a th:href="@{|/profiles/${profiles.id}|}" th:text="*{profiles.firstName}"></a>
</div>

视频:https://www.youtube.com/watch?v=8niAXQgsT0Y&ab_channel=KnowledgeBase
在Controller中使用@PathVariable,问题解决了,祝大家好运。

相关问题