如何使用百里香获取输入用户名的值?

Posted

技术标签:

【中文标题】如何使用百里香获取输入用户名的值?【英文标题】:How to get the value of the input username with thymeleaf? 【发布时间】:2021-05-29 21:28:01 【问题描述】:

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

我的登录表单是:

<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", required = false) String error,@RequestParam("Email") String email,
        Model model, Principal principal) 
    if (principal != null) 
        return "redirect:/ppeliculas";
    
    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";

【问题讨论】:

【参考方案1】:

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

如果您从编程开始阅读有关 HTTP 的内容:https://www.w3schools.com/tags/ref_httpmethods.asp,在这种情况下,请阅读有关 @RequestBody 的内容:https://www.baeldung.com/spring-request-response-body

【讨论】:

以上是关于如何使用百里香获取输入用户名的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象列表绑定到百里香中的复选框?

如何在百里香选择选项中获取对象?

如果在百里香中选中复选框,如何更改布尔值?

如何设置百里香th:来自其他变量的字段值

如何将整数附加到 url 脚本内联百里香?

如何在百里香中打印数组大小?