父页面使用layer.open打开jsf页面,点击页面上保存后,要求完成后台业务后,关闭jsf页面,然后刷新父页面。
要求看起来比较简单,实现起来比较麻烦:
子页面使用h:commandButton挂接后台业务saveSort
<h:commandButton value="保存" styleClass="button01" onclick="return forSave()" action="#{emp_PersonSortBB.saveSort}"/>
saveSort完成业务后return "success"
jsf配置中配置success转向页面SucceedLayuiClose.jsp
后台可以通过session变量传递参数给SucceedLayuiClose.jsp页面,控制页面行为。
例如是否刷新父页面。
// 以下是关闭子页面
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
<%
String RefreshList=CommonFuns.filterNull((String)session.getAttribute("RefreshList"));
if(RefreshList.equals("")){
RefreshList="false";
}
session.removeAttribute("RefreshList");
%>
if(<%=RefreshList%>){
parent.document.getElementById("form1:refreshList").click();
}