gpt4 book ai didi

java - 我如何向 :action form 添加数据

转载 作者:行者123 更新时间:2023-12-01 16:39:55 25 4
gpt4 key购买 nike

我有一个 spring-boot 应用程序。我需要的完整网址:localhost:8080/company/{companyName}/users?name={name}。一开始我选择公司,例如。 :本地主机:8080/公司/谷歌。 Controller 将我重定向到表单 (company.html) 的页面,我在其中输入名称。 Controller :

@GetMapping("/company/{company}")
public String greetingForm(@PathVariable String company, Model model) {
Data data = new Data();
data.setCompany(company);
model.addAttribute("data", data);
return "company";
}

在数据类中,我只存储公司和名称;

我的表单,我在其中输入名称:

<form action="#" th:action="@{/users}" th:object="${data}" method="get">
<p>Name: <input type="text" th:field="*{name}" /></p>
<p><input type="text" th:value="${data.company}"></p>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>

所以我提交后,结果url是localhost:8080/users?name=Example,我需要localhost:8080/company/google/users?name=Example。我怎样才能改变它?我尝试了 th:action="@{/${data.company}/users}",但 ${data.company} 按字面解释

最佳答案

为什么要同时使用路径参数和查询参数?您可以仅使用路径参数或仅使用查询参数来完成此操作。

作为您问题的答案,您可以尝试以下操作:

<form th:action="@{/company/{id}/users(id=${company.name})}" method="get">
<input type="hidden" name="name" th:value="${user.name}">
<input type="submit" value="Submit" />
</form>

另一种选择:

<form th:action="@{/company/{id}/users(id=${company.name},name=${user.name})}" method="get">
<input type="submit" value="Submit" />
</form>

有多种方法可以将您的请求正确发送到 Controller 。

  1. 发送查询参数:
    <form th:action="@{/service}" method="get">
<input type="text" name="company" th:value="${company.name}" />
<input type="text" name="name" th:value="${user.name}" />
<button type="submit">Submit</button>
</form>

输出为:'..../service?company=google&name=david'

  • 使用 th:ref 属性:
  •     <a th:href="@{...}">
    <span>Submit</span>
    </a>
  • 将值放入表单中并发出 POST 请求。
  • 关于java - 我如何向 :action form 添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61878407/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com