我正试图通过创建提交按钮来获取存储在隐藏输入中的值。但是程序不会将值绑定到对象。
HTML文件
<form th:method="POST" th:action="@{/client/1/allprocedures}" th:object="${treatment}">
<input type="hidden" th:value="${treatment.ClientID}" name="1" id="1">
<input type="hidden" th:value="${treatment.ProcedureID}" name="128" id="128">
<input class="btn btn-outline-primary btn-sm mt-2 w-100" type="submit" value="Buy"/>
</form>
控制器
@GetMapping("/{id}/allprocedures/add")
public String addProcedure(Model model){
model.addAttribute("treatment", new Treatment());
return "addProcedure";
}
@PostMapping("/{id}/allprocedures")
public String saveProcedure(@ModelAttribute("treatment") Treatment treatment,
@PathVariable("id") int id,
BindingResult bindingResult){
if(bindingResult.hasErrors())
return "procedurelist";
return "redirect:/client/"+ id +"/allprocedures";
}
治疗模式
public class Treatment {
private int ClientID, ProcedureID;
}
// constructor, getters and setters
控制器工作正常。当我使用文本输入手动输入数据时,程序按如下方式工作:
<form th:method="POST" th:action="@{/client/1/allprocedures}" th:object="${treatment}">
<input type="text" th:field="${treatment.ClientID}">
<input type="text" th:field="${treatment.ProcedureID}">
<input class="btn btn-outline-primary btn-sm mt-2 w-100" type="submit" value="Buy"/>
</form>
同时,当我使用th:field
和name="" id=""
时,它也不起作用。我也尝试过使用th:value="name=""
,但它不起作用:
<input type="hidden" th:field="${treatment.ClientID}" th:attr="name=1">
<input type="hidden" th:field="${treatment.ProcedureID}" th:attr="name=128">
有人能提供帮助或建议吗?提前感谢!
尝试使用以下方法:
<input type="hidden" th:field="*{ClientID}">
<input type="hidden" th:field="*{ProcedureID}">
请注意使用了*而不是$。此外,th:field
属性中的值是由th:object
属性指定的对象的属性。th:field
将为您呈现id和name属性。
<input type="text" hidden th:field="*{ClientID}" th:value="${treatment.ClientID}">
这样的东西应该行得通。