Ajax支持部分页面刷新,即在不刷新整个页面的情况下更新页面的本地信息,虽然在用户列表中,点击某个按键时,须要查询用户信息,假如查询失败,则在原页面弹出提示信息,下文是ajax跳转到新的jsp页面的步骤,一起跟随爱站技术频道小编的脚步来学习吧!
两个解决办法:
方式一:
点击按键,调用普通方式去查询用户信息,查询成功跳转到用户详情页面;查询失败,重定向调用查询用户列表的方式,在查询用户列表的方式结束后重新跳转到用户列表页面并弹出提示信息,相当于重新加载了用户列表页面。
方式二:
依据需求,不可以重新加载用户列表页面。用ajax调用查询用户详情的方式,查询成功返回用户Json串,查询失败则返回error。
后台方式:
@RequestMapping(value = "searchUser") public void searchHome(HttpServletResponse response){ String result = null; ... 查询用户的方法 ... if(查询成功){ result = JsonUtil.objectToJson(查询结果对象);//结果对象转化成Json字符串,在ajax的结果中跳转到用户详情的处理方法 AjaxUtil.ajax(response,result); }else{//查询失败,返回提示信息 AjaxUtil.error(response, "查询用户失败"); } }
jsp页面的ajax:
function searchUser(){ $.ajax({ url : "testurl/searchUser", cache : false, type : 'POST', data : { 查询用的数据,比如用户ID }, success : function(data) { var obj = eval("("+data+")"); if(obj.success==undefined){//查询成功,跳转到详情页面 ... 跳转到用户详情处理方法,将date数据传过去 ... }else if(!obj.success){//查询失败,弹出提示信息 weui.Loading.info(obj.message); } }, error : function(error) { weui.alert("查询用户有误!"); } }); }
此处的重点在于怎样在ajax的反弹函数中调用普通方式,并将之前查询出的用户数据传到普通方式中(前面伪代码中蓝色的部份),从而跳转到用户详情页面。
(1)错误案例:
function searchUser(){ $.ajax({ url : "testurl/searchUser", cache : false, type : 'POST', data : { 查询用的数据,比如用户ID }, success : function(data) { var obj = eval("("+data+")"); if(obj.success==undefined){//查询成功,跳转到详情页面,encodeURIComponent编码是为了防止url后面传送的参数中文乱码,在后台处理时需要解码 window.location.href = "testurl/userForm?userJson="+encodeURIComponent(data); }else if(!obj.success){//查询失败,弹出提示信息 weui.Loading.info(obj.message); } }, error : function(error) { weui.alert("查询用户有误!"); } }); }
错误缘由:window.location.href方式为get方式,这会促使参数显示的浏览器的url中,不安全,但是数据传送的宽度有限制。
(2)想到的笨方式:在body中写隐藏的form表单,在反弹函数中把查到的用户数据复制给form表单中的input,之后递交表单跳转到普通方式中,这样就是以post方式递交的数据,但是可以跳转到新页面了:
function searchUser(){ $.ajax({ url : "testurl/searchUser", cache : false, type : 'POST', data : { 查询用的数据,比如用户ID }, success : function(data) { var obj = eval("("+data+")"); if(obj.success==undefined){//查询成功,跳转到详情页面 $("#userFormJson").val(data); $("#userForm").attr("action","testurl/userForm"); $("#userForm").submit(); }else if(!obj.success){//查询失败,弹出提示信息 weui.Loading.info(obj.message); } }, error : function(error) { weui.alert("查询用户有误!"); } }); }
jsp页面的body
以上就是给你们讲述了关于ajax跳转到新的jsp页面的步骤的介绍,假如有筒靴们对这行业有兴趣的话,可以在爱站技术频道认真学习。