Что не так с моей формой листа тимиана html здесь? Почему пароль показывает значение null? - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть базовая форма c, которая принимает значения от пользователя. Проблема в том, что все поля html с type = text работают нормально и отправляют значения в мой java Back end API, но только входной тип = пароль отправляет нулевое значение в API.

MY 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>

Код контроллера My Spring:

              @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;
}}

что я здесь не так делаю?

1 Ответ

0 голосов
/ 28 апреля 2020

Измените объявление пароля поля формы на следующее:

<input id="inputt3" placeholder="Password" onclick="thisv4()" type="password" th:field="*{password}">

Вы должны сопоставить поле ввода тимелист с полем объекта java. Таким образом, это должно быть th: field вместо th: value.

th: value означает фактическое значение ввода.

Ref: https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#setting -value-to-Speci c -attributes

...