现在我正在使用Sping Boot 。我想在登录失败时显示错误信息。当我做Maven项目时,我用BindingResult很容易做到。我按照几个指示完成了我想做的任务。但我找不到合适的解决办法。我需要一个最简单的解决方案。
这里是我的Controller
类
@RequestMapping(value = "/loginCheck", method = RequestMethod.POST)
public String checkLogin(@RequestParam String roll, @RequestParam String pass) {
if (studentService.existsByRollAndPass(roll, pass)) {
return "Welcome";
} else {
return "Login";
}
我的html
文件是
<form class="form-horizontal" method="post" action="/loginCheck">
<fieldset>
<div class="form-group">
<label class="col-md-4 control-label" for="textinput">Roll</label>
<div class="col-md-4">
<input id="textInput" name="roll" type="text"
placeholder="Roll" class="form-control input-md">
</div>
</div>
<!-- Password input-->
<div class="form-group">
<label class="col-md-4 control-label" for="password">Password</label>
<div class="col-md-4">
<input id="password" name="pass" type="password"
placeholder="password" class="form-control input-md">
</div>
</div>
<!-- Button -->
<div class="form-group">
<label class="col-md-4 control-label" for="login"></label>
<div class="col-md-4">
<button id="login" name="login" class="btn btn-primary">Login</button>
</div>
</div>
</fieldset>
</form>
3条答案
按热度按时间amrnrhlw1#
您可以将错误参数放置到URL,如localhost:8080/login?错误。然后,在Thymeleaf的帮助下,您可以将此div添加到html中。
如果URL中有错误参数,则会显示此div。
但是,你可能需要改变
到
qnakjoqk2#
我花了三个小时解决了这个问题。我更改了
html
头到
并在
Controller
类中添加了Model
。现在我的控制器类是为了捕获错误,我在
html
文件中放置了一行代码。现在一切正常!!!
bogh5gae3#
您也可以通过实现AuthenticationFailureHandler并使用一个参数重定向以指示存在登录错误来完成此操作。
在扩展WebSecurityConfigurerAdapter的类中,在configure方法的重写中,确保添加failureHandler
在实现AuthenticationFailureHandler的类中(例如:MyAuthenticationFailureHandler),实现onAuthenticationFailure方法并重定向到登录页面,并向URL添加一个参数,如loginError=true。
然后在login.html页面中,使用${param.loginError}检查此URL参数。