Java SpringMVC中重定向或重定向模型问题的解决方案
我目前已经为我的索引页面构建了一个控制器,它也是一个登录页面 使用控制器,如果用户的登录凭据匹配,我将映射jsp,如果不匹配,我希望重定向到带有消息“对不起,用户名,密码错误”的索引页面 代码如下: 控制器Java SpringMVC中重定向或重定向模型问题的解决方案,java,spring,eclipse,spring-mvc,model-view-controller,Java,Spring,Eclipse,Spring Mvc,Model View Controller,我目前已经为我的索引页面构建了一个控制器,它也是一个登录页面 使用控制器,如果用户的登录凭据匹配,我将映射jsp,如果不匹配,我希望重定向到带有消息“对不起,用户名,密码错误”的索引页面 代码如下: 控制器 if(uname.equals(inf.getUsername())&&pwd.equals(inf.getPassword())&&dept.equals(inf.getDept())) { req.getSessio
if(uname.equals(inf.getUsername())&&pwd.equals(inf.getPassword())&&dept.equals(inf.getDept()))
{
req.getSession().setAttribute("uname",inf.getName());
return new ModelAndView("employeeLoginResult", "message", message1);
}
else if(uname.equals(inf2.getUsername())&&pwd.equals(inf2.getPassword())&&dept.equals(inf2.getDept()))
{
req.getSession().setAttribute("uname",inf2.getName());
return new ModelAndView("adminLoginResult", "message", message2);
}
else
{
return new ModelAndView("redirect:/index.jsp","message","Sorry");
}
索引页
<b><span class="heading">LOGIN USER</span></b>
<div class="container">
<form action="login.html" method="Post">
<div class="form_style">
<input type="text" name="username" placeholder="Enter Username"/>
<input type="password" name="pwd" placeholder="Enter password"/>
<select name="dept">
<option>IT</option>
<option>Admin</option>
<option>HR</option>
<option>Marketing</option>
</select>
<input type="Submit" value="submit">
<span class='disp'>${message}</span>
</div>
</form>
</div>
登录用户
信息技术
管理
人力资源
营销
${message}
重定向可以工作,但消息会附加到Url中,如下所示:
我只想在带有${message}的索引文件上打印“对不起用户名密码错误”
我的问题:
是否可以将ModelAndView与RedirectView一起使用,或者如果没有其他解决方案,是否可以使用ModelAndView将重定向发送到我的索引页
如有任何建议或意见,我们将不胜感激。
感谢您的支持。“重定向有效,但消息会附加到Url中”这是正常重定向属性的预期行为
通过不在浏览器中显示URL,可以使用flash属性重定向
例如,请参阅以下代码:
@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}";
}
请参阅:是否可以添加类似MyConfig的类
@EnableWebMvc
@Configuration
public class MyConfig {
@Autowired
private RequestMappingHandlerAdapter requestMappingHandlerAdapter;
@PostConstruct
public void init() {
requestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect(true);
}
}
你能分享一些代码供参考吗?或者任何来源?您是否查看过将exposeModelAttributes设置为false的RedirectView?问题是,我只返回ModelAndView,无法使用RedirectView。你能分享一些代码参考吗?你使用的是基于xml的配置吗?你能添加我已经在使用的
吗。我用您的代码替换了它,但出现了一个错误:元素“mvc:注释驱动”中不允许出现属性“ignoreDefaultModelOnRedirect”。我似乎无法添加@PostConstruct。它说我需要手工制作这个注解。import javax.annotation.PostConstruct;我可以请你进行讨论吗?因为我似乎有很多问题,但我似乎找不到解决问题的方法。对不起,stackoverflow中的讨论是什么?您可以尝试导入PostConstruct吗?我导入了javax.annotation.PostConstruct。PostConstruct解决了问题,但这应该做什么?你会硼酸吗?