正常情况下struts中的forward是不能跳转到frame框架中的。在实验了一天后终于找到了解决的办法:利用ajax的返回值生成页面。
1.在前台使用ajax请求action:
var par = "zczt="+zczt+"&sbmc="+sbmc+"&cpu="+cpu+"&xsk="+xsk+"&zb="+zb+"&nc="+nc
+"&ypzx="+ypzx+"&ypzd="+ypzd+"&os="+os+"&gbrqqs="+gbrqqs+"&gbrqjs="+gbrqjs+"&r=" + Math.random();;
var url="operate/searchbfzc.do?"+par;
useAjax(url);
function useAjax(url){
create();
xmlHttpRequest.open("POST",url,true);
//定义触发事件
xmlHttpRequest.onreadystatechange=processresult;
//发出异步请求
xmlHttpRequest.send(null);
}
2.在后台action中跳转到目标页面:
request.setAttribute("searchResult", searchResult);
return mapping.findForward("searchResult");
3.在跳转后在前台用ajax接受返回来的信息(该信息为网页的代码)
function processresult(){
//异步交互完成,并且交互过程中没有发生异常
if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status==200){
//获取服务器返回的文本信息
var mess = xmlHttpRequest.responseText;
if(mess.length>50){
document.write(mess);
}else{
window.alert(mess);
window.location.href="zcbfH.jsp";
}
}
}
使用这句话来判断返回的为提示信息还是网页源码mess.length>50,一般的提示信息比较短可以根据自己的需要进行调整
主要是使用document.write(mess);这句话将返回的网页源码进行解析生成新的页面,而且看不出抖动。
else里的大家都能看懂就不说了。
附上源码(ajax的代码也是从网上抄的,具体谁的给忘了。莫怪罪。呵呵)希望对大家能有些许帮助:java的
js的