环境:Jsp + springMVC + spring4.0.0
跳转的方法: 普通的String跳转 例如:return "jsp/app"; 跳转到jsp文件下的 app.jsp 页面。这是不带参数的重定向。
需求:当访问添加app之后需要重定向到获取列表页面,添加页面如果出现错误,需要传递错误信息到获取列表方法返回给用户错误信息。
方法一:以前方法:直接在跳转字符串后面拼接传递参数,可行. [弊端,就是传中文可能会有乱码问题。乱码问题也可以解决。]
例如:return "redirect:/app/getAllApp?myError="+myError;
方式二:用RedirectAttributes 类,是 SpringMVC 提供的类 public String saveApp(APP app,HttpServletRequest request,RedirectAttributes attr) {
//50004是自己定义的作物代码!
attr.addAttribute("MyError", "50004");
return "redirect:/app/getAllApp";
}
这样在 跳转的方法里使用getParameter获取
<span style="white-space: pre;"> </span>@RequestMapping("getAllApp")
<pre> public String getAllApp(HttpServletRequest request){
String MyError = (String) request.getParameter("MyError");//获取上个方法添加的参数
request.setAttribute("MyError", MyError==null?"":MyError);//设置到requset中页面提醒用户
return "jsp/appset";
}
在jsp 页面 js 使用弹窗提醒顾客,获取request中的提示信息var myerror = '${MyError }' ;
<script type="text/javascript">
function showError(){
var myerror = '${MyError }' ;
if(myerror == ''){
}else if(myerror == '50001'){
alert("创建或者修改操作失败!");
}else if(myerror == '50003'){
alert("删除操作失败!");
}else if(myerror == '50004'){
alert("获取列表操作失败!");
}else if(myerror== '50005'){
alert("上传文件扩展名不正确!此操作失败!")
}
}
</script>
<body οnlοad="showError()">