配置视图解析器:
<!-- 2.内部资源视图解析器 -->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages"></property>
<property name="suffix" value=""></property>
</bean>
代码:
@RequestMapping("/login/studentlogin.action")
public String studentlogin(Integer username,String password){
System.out.println("接收到数据:"+username+"---"+password);
Map map = new HashMap();
map.put("id", username);
map.put("password", password);
List<Student> students = this.studentService.findStudent(map);
if(students.size()==1){
System.out.println("密码正确");
return "redirect:/showcourse/toshowcourse.action";
}else{
System.out.println("密码错误");
return "";
}
}
我想密码错误的时候,重新返回到根目录下的页面上去,但是因为在视图中已经将所有的请求放入WEB-INF下面去了,不知道怎么写才返回到根目录下,各位大神解答下?
问题解决了:
session.invalidate();
return "redirect:/index.jsp";
在返回之前写着条一句,然后重定向页面名字即可。
request.getRequestDispatcher("/index.jsp").forward(request, response)
方法传参数时多传个reqeust,response,然后使用response.sendRedirect(_request.getContextPath() + "/index.jsp);
System.out.println("密码正确");
request.getRequestDispatcher("/error.jsp").forward(request, response);
将判断设置为boolean类型,密码正确返回true错误返回false
在servlet里调用该boolean flag = studentlogin(name,password);方法,
if(flag){//为真true
//密码正确跳转到你想让他跳转的界面
request.getRequestDispatcher("/ .jsp").forward(request, response);
}else{
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
换个思路,不要非回到根目录下。这么做感觉难就说明不应该这么实现。
其实你要做的就是密码错误的时候给出提示,然后重新输入嘛,
好的做法应该是index.jsp里面给个跳转,直接跳转到pages下面一个login.jsp页面
然后密码错误再跳转不是就简单了,跳转到pages下面的login.jsp就可以了