功能要求:
1.父页面 P1;子页面P2;
2.在P2中保存内容到数据库,要求刷新P1,显示刚才保存的内容
实现方法:
1.在P1中打开P2:
function addAdvice(){
//打开P2
var sRet = window.showModalDialog(
"<ww:url includeParams='none'value='/resources/innerTrainer/innerTrainnerOnlineCheckOpenUI.action'/>
?id=<ww:propertyvalue='trainerApply.applyUserId'/>", 'TrainerApply',
'dialogHeight:500px;dialogWidth:600px;edge:sunken;center:Yes;
help:No;resizable:No;status:No;scroll:Yes;unadorned:yes');
//等待P2页面的返回值,进而跳转到UIaction,进而刷新P1
if (sRet == "refresh") {
window.location.href = "
<ww:url includeParams='none' value="/resources/innerTrainer/innerTrainerOnlineCheckUI.action" />
?id=<ww:property value='trainerApply.applyUserId' />";
}
}
2.在P2页面中:
function saveAdvice(){//保存修改内容,触发后台保存action
var url = '<ww:url includeParams='none' value="/resources/innerTrainer/innerTrainnerOnlineCheck.action"/>
? TApplyId=<ww:property value="#session.trainerApplyId"/>';
document.innerTrainnerOnlineCheck.action = url;
document.innerTrainnerOnlineCheck.submit();
}
3.保存成功后,在后台保存action里面存放一个标志属性:
this.getHttpServletRequest().setAttribute("assign", "ok");
页面跳转到P2
4.在P2里面:
<ww:if test="#request.assign == 'ok'" >
window.returnValue = "refresh"; //这个值将被P1里面的var rSet = window.showModalDialog()接收到
window.close();
</ww:if>
5.当P1接收到P2的传值refresh,就会触发UIaction,进而实现刷新。
注意:在子页面P2里面的head里面一定要写上<base target="_self" />
这样才能保存不打开新的子页面,否则如果打开了新的子页面,var rSet没有值