我有一个基本表单,它从用户那里获取值。问题是所有 type=text 的 html 字段都工作正常并将值发送到我的 java 后端 API,但只有输入 type=password 向 API 发送 null 值。
我的 HTML 代码:
<form action="#" th:action="@{/register}" th:object="${register}" method="post">
<input id="inputt" placeholder="First Name" onclick="thisv1()" type="text" th:field="*{fname}" >
<br>
<input id="inputt1" placeholder="Last Name" onclick="thisv2()" type="text" th:field="*{lname}">
<br>
<input id="inputt2" placeholder="Email" onclick="thisv3()" type="text" th:field="*{email}">
<br>
<input id="inputt3" placeholder="Password" onclick="thisv4()" type="password" th:value="*{password}">
<br>
<input type="submit" id="submit" name="Submit" value="Submit">
</form>
我的 Spring Controller 代码:
@GetMapping("/register")
public String form(Model model){
model.addAttribute("register",new Register());
return "register";
}
@PostMapping("/register")
public String SubmitForm(@ModelAttribute Register register){
DB.addValues(register.getFname(),register.getLname(),register.getEmail(),register.getPassword());
return "result";
}
注册类代码:
public class Register {
private String fname;
private String lname;
private String email;
private String password;
public void setFname(String fname){
this.fname=fname;
}
public void setLname(String lname){
this.lname=lname;
}
public void setEmail(String email){
email=email.toString();
this.email=email;
}
public void setPassword(String Password) {
this.password = password;
}
public String getFname(){
return fname;
}
public String getLname(){
return lname;
}
public String getEmail(){
return email;
}
public String getPassword(){
return password;
}}
我在这里做错了什么?
最佳答案
将表单字段密码声明更改为:
<input id="inputt3" placeholder="Password" onclick="thisv4()" type="password" th:field="*{password}">
您应该将 thymeleaf 输入字段映射到 java 对象字段。因此,它应该是 th:field,而不是 th:value。
th:value 表示输入的实际值。
引用号:https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#setting-value-to-specific-attributes
关于java - 我的 thymeleaf html 表单有什么问题吗?为什么密码显示值为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61482362/