Kle*_*ota 2 java spring jsp spring-mvc
在我的spring mvc应用程序中,我有以下登录表单:
<!--LOGIN FORM-->
<form name="login-form" class="login-form" action="usuario_login.html" method="post">
<!--HEADER-->
<div class="header">
<!--TITLE--><h1>Login Form</h1><!--END TITLE-->
<!--DESCRIPTION--><span>Fill out the form below to login to my super awesome imaginary control panel.</span><!--END DESCRIPTION-->
</div>
<!--END HEADER-->
<!--CONTENT-->
<div class="content">
<!--USERNAME--><input name="username" type="text" class="input username" value="Username" onfocus="this.value=''" /><!--END USERNAME-->
<!--PASSWORD--><input name="password" type="password" class="input password" value="Password" onfocus="this.value=''" /><!--END PASSWORD-->
</div>
<!--END CONTENT-->
<!--FOOTER-->
<div class="footer">
<!--LOGIN BUTTON--><input type="submit" name="submit" value="Login" class="button" /><!--END LOGIN BUTTON-->
</div>
<!--END FOOTER-->
</form>
Run Code Online (Sandbox Code Playgroud)
页面usuario_login.html以这种方式在DispatcherServlet中配置:
@RequestMapping(value="/usuario_login", method=RequestMethod.POST)
public ModelAndView usuario_login(@RequestParam("username") String username, @RequestParam("password") String password) {
UsuarioDAO usuario = new UsuarioDAO(username, password);
if(usuario.getUsuario() == null) {
String message = "oops! não foi possivel efetuar o login. Confira seu login e senha e tente novamente.";
return new ModelAndView("","message",message);
}
else {
this.sessao = new Sessao(usuario.getUsuario());
return new ModelAndView("usuario_start","usuario",usuario.getUsuario());
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果登录失败(条件usuario.getUsuario()== null我如何重定向到我的文件index.jsp,登录表单放在哪里?我想发送一条消息说明情况,要显示在这个页面中也是如此.
我会严格推荐使用Spring Security,它很容易实现.看看它:Spring Security
不过,你想做什么我可以做到
new ModelAndView("redirect:YOUR_REQUEST_MAPPING_HERE");
此外,对于该消息,我建议您查看重定向属性
从上面的链接:
@RequestMapping(value = "/accounts", method = RequestMethod.POST)
public String handle(Account account, BindingResult result, RedirectAttributes redirectAttrs) {
if (result.hasErrors()) {
return "accounts/new";
}
// Save account ...
redirectAttrs.addAttribute("id", account.getId()).addFlashAttribute("message", "Account created!");
return "redirect:/accounts/{id}";
}
Run Code Online (Sandbox Code Playgroud)
重定向后,Flash属性会自动添加到为目标URL提供服务的控制器模型中.
这意味着对于上面的示例,您可以通过执行$ {message}在JSP中显示消息,因为具有名称消息的变量被添加到模型中.
| 归档时间: |
|
| 查看次数: |
24429 次 |
| 最近记录: |