gua*_*zoe 2 java rest thymeleaf
我对Thymeleaf很新,所以我正在努力解决这个问题.
我想在提交表单时将参数传递给控制器,并带有文本字段的值.
这是我的控制器:
@PostMapping("/postEndpoint/{myid}")
public String pidUserSubmit(@PathVariable(value = "myid") String myid) {
log.debug("*** MY ID: {}", myid);
return "redirect:/someOtherPage";
}
Run Code Online (Sandbox Code Playgroud)
这就是我定义文本输入的方式:
<input id="myid" name="myid" type="text" maxlength="26" title="Please enter a valid ID" class="texter" th:value="*{myid}">
Run Code Online (Sandbox Code Playgroud)
这就是我在mymeleaf的html文件中尝试过的:
<form name="myform" id="myform" action="#" th:action="@{/postEndpoint/__${myid}__}" method="post">
Run Code Online (Sandbox Code Playgroud)
我收到了这个日志:***我的ID:null
<form name="myform" id="myform" action="#" th:action="@{/postEndpoint/${myid}}" method="post">
Run Code Online (Sandbox Code Playgroud)
我收到了这个日志:***我的ID:$ {myid}
<form name="myform" id="myform" action="#" th:action="@{/postEndpoint/{myid}(myid=${myid})}" method="post">
Run Code Online (Sandbox Code Playgroud)
这甚至没有到达控制器
任何帮助,将不胜感激!:)
这不是这样的.与所有服务器端技术一样,Thymeleaf模板在发送给用户之前执行,因此无法知道用户将输入的内容并将其插入到action属性中.
您可以使用JavaScript执行类似操作,但使用常规HTML表单会更容易.这要求您不要在控制器中使用路径变量,而是使用请求参数:
@PostMapping("/postEndpoint")
public String pidUserSubmit(@RequestParam(name = "myid") String myid) {
log.debug("*** MY ID: {}", myid);
return "redirect:/someOtherPage";
}
Run Code Online (Sandbox Code Playgroud)
<form th:action="@{/postEndpoint}" th:object="${mymodelobject}">
<input name="myid" type="text" th:value="*{myid}">
</form>
Run Code Online (Sandbox Code Playgroud)
(如果要使用语法,请不要忘记使用th:object具有属性的对象.)myid*{...}
| 归档时间: |
|
| 查看次数: |
8028 次 |
| 最近记录: |