我有一个jsp索引文件,其中有一个简单的登录表单,我检查了用户在控制器上显示的值,并将它们重定向到具有其他功能的受人尊敬的jsp页面。
这是我的索引文件:
<html>
</head> <body> <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">
</div>
</form>
</div> </body>
</html>
控制器:
public class LoginController {
@RequestMapping("/login")
public ModelAndView loginResult(HttpServletRequest req,HttpServletResponse res) {
InfoEmployee inf = new InfoEmployee();
InfoManager inf2 = new InfoManager();
String uname=req.getParameter("username");
//Putting the username in the session object
String pwd=req.getParameter("pwd");
String dept = req.getParameter("dept");
String name1 = inf.getName();
String message1 = "Welcome "+name1;
String name2 = inf2.getName();
String message2 = "Welcome "+name2;
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("RedirectTondex", "message","Sorry, username or password error");
}
}
现在,我已经在Java类中将登录值硬编码为InfoManager和InfoEmployee。我将jsp映射到控制器中的其他jsp。
我的问题是,如果在控制器else语句中没有匹配项,我想重定向或包含到索引文件中。
如果我在这里给出索引的引用,它只会搜索WEB-INF / jsp目录,就像我在servlet调度程序类中这样编码一样
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
所以我想到了两种解决方案 1是我可以做一个jsp向用户展示一些错误的东西,并在可能的情况下将其从那里重定向到索引。 2直接从控制器重定向到索引,并使用如上所述的ModelAndView类型方法将消息传递到索引。
感谢您对问题的任何帮助或建议。 预先谢谢你。
答案 0 :(得分:0)
您可以通过多种方式实现它。一种是返回:
return new RedirectView("redirectedUrl");
或者您可以使用
return new ModelAndView("redirect:/abc.htm")
或者将索引文件移动到web-inf / jsp中,并使其成为JSP,然后像这样重定向:
return new ModelAndView("index")