gpt4 book ai didi

java - 从 Spring MVC 中的 Controller 操作重定向到 JSP 文件

转载 作者:行者123 更新时间:2023-11-30 06:20:14 26 4
gpt4 key购买 nike

在我的 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>

页面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&atilde;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");

此外,对于消息,我建议您查看 Redirect Attributes

来自上面的链接:

 @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 提供服务的 Controller 模型中。

这意味着对于上面的示例,您可以通过执行 ${message} 在 JSP 中显示消息,因为名称为 message 的变量已添加到模型中。

关于java - 从 Spring MVC 中的 Controller 操作重定向到 JSP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com