[英]Redirect to an external URL from controller action in Spring MVC
[英]Redirect to a JSP file from controller action in 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>
使用以下方法在DispatcherServlet中配置usuario_login.html頁面:
@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());
}
}
我的問題是:如果登錄失敗(條件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}";
}
重定向后,Flash屬性會自動添加到提供目標URL的控制器模型中。
這意味着對於上面的示例,您可以通過執行$ {message}在JSP中顯示消息,因為將帶有名稱message的變量添加到了模型中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.