如何使用 thymeleaf 获取输入用户名的值?

问题描述

如何获取登录表单中输入用户名的值?

我的登录表单是:

<form th:action="@{/login}" method="post">
                <div class="form-group">
                    <input type="text" name="username" id="username"
                           class="form-control" th:placeholder="Email" autofocus required/>
                </div>

                <div class="form-group">
                    <input type="password" name="password" id="password"
                           class="form-control" th:placeholder="Password" required/>
                </div>

                <input type="submit" class="btn btn-lg btn-primary btn-block"
                       th:value="Login"/>

            </form>

我的控制器是:

@Controller
public class LoginController {

@GetMapping("/login")
public String login(@RequestParam(value = "error",required = false) String error,Model model,Principal principal) {

    if (principal != null) {
        return "redirect:/ccursos";
    }

    if (error != null) {
        model.addAttribute("msg","Error al iniciar sesión: Nombre de usuario o contraseña incorrecta,por favor vuelva 
  a intentarlo!");
    }

    return "login";
}

@GetMapping("/logout")
public String logoutPage (HttpServletRequest request,HttpServletResponse response) {
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    if (auth != null){
        new SecurityContextlogoutHandler().logout(request,response,auth);
    }
    return "redirect:/login";
}
}

我试图使用@RequestParam 来获取变量的值,但它说变量电子邮件不存在。我知道这一点,所以任何帮助将不胜感激。

这是我想要做的:

@GetMapping("/login")
public String login(@RequestParam(value = "error",@RequestParam("Email") String email,Principal principal) {
    if (principal != null) {
        return "redirect:/ppeliculas";
    }
    if (error != null) {
        model.addAttribute("msg",por favor vuelva 
   a intentarlo!");
    }
    return "login";
}

解决方法

您正在尝试通过 POST 方法发送表单,但您的控制器仅针对 @GetMapping 定义。更改或添加 @PostMapping,然后添加 @RequestBody Model model(如果 class Model 描述您的表单),一切都应该有效。

如果您是从编程开始,请阅读有关 HTTP 的一些内容:https://www.w3schools.com/tags/ref_httpmethods.asp,在本例中有关 @RequestBodyhttps://www.baeldung.com/spring-request-response-body

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...