手指离心脏还很遥远呢,人不至于死掉吧

手指头离心脏还很遥远呢,人不至于死掉吧

问题描述:Spring mvc , Controller页面重定向,数据正常传递,页面不跳转。例:StudentAssess.jsp在Controller中页面重定向到StudentExaming.jsp

核心代码

StudentAssess.jsp:

<span style="font-size:18px;">function queryExamineeArrangement(){
	$.ajax({
		url:'queryExamineeArrangement',
		type:'post',
		datatype:'json'
	});
}<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span></span>

StudentAssessController.java: 

<span style="font-size:18px;">@SuppressWarnings("unused")
@RequestMapping("/queryExamineeArrangement")
public String queryExamineeArrangement(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
	try {
		List<ExamineeArrangement> listExamineeArrangement=studentAssessBean.queryExamineeArrangement("1000");
		request.setAttribute("examState", listExamineeArrangement.get(0).getExamState());			
	} catch (Exception e) {
		e.printStackTrace();
	}
	return "/StudentExaming";
}</span>

StudentExaming.jsp:

先通过该语句将传过来的数据打印到控制台,显示如下:

<span style="font-size:18px;">System.out.println("examState=" + request.getAttribute("examState"));</span>

手指离心脏还很遥远呢,人不至于死掉吧

问题:数据虽然已经打印出来了,但是页面依旧停留在StudentAssess.jsp

手指离心脏还很遥远呢,人不至于死掉吧

方案

经过多方努力,终于找到了问题的所在(下图阴影部分):

手指离心脏还很遥远呢,人不至于死掉吧


使用Ajax,是进行异步提交,只会实现局部刷新,因此它是不会跳转页面的。因此正确写法如下:

<span style="font-size:18px;">System.out.println("examState=" + request.getAttribute("examState"));</span>

总结:有时候觉得手指头离心脏还很遥远呢,不至于让人死掉吧!但往往问题就在:我以为的就是我以为的地方。