我目前为我的索引页面(也是登录页面)构建了一个控制器。
使用控制器,如果用户的登录凭据匹配,并且我不希望通过消息“对不起的用户名,密码错误”重定向到索引页面,我将映射jsp。
代码如下:
控制器
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}的索引文件上打印“对不起的用户名密码错误”
我的问题: 是否可以将ModelAndView与RedirectView一起使用,或者如果没有其他解决方案,可以使用ModelAndView将重定向发送到我的索引页?
任何建议或意见都值得赞赏。 谢谢你。
答案 0 :(得分:1)
“ 重定向有效,但消息被附加到网址中”,这是正常重定向属性的预期行为。
您可以通过不显示浏览器中的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}";
}
答案 1 :(得分:0)
是否可以添加MyConfig之类的类
@EnableWebMvc
@Configuration
public class MyConfig {
@Autowired
private RequestMappingHandlerAdapter requestMappingHandlerAdapter;
@PostConstruct
public void init() {
requestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect(true);
}
}