我们在运用struts开发的时候会用到这样的情况,需要在一个页面中的iframe中进行数据操作,等数据提交完成后需要将父页面的数据进行更新。这里我写一下我自己用到的一个方法。是我的一个老师推荐的。
方法其实也挺简单:在iframe的action方法中定义父页面的转向。
public ActionForward insertRecord(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
ActionForward forward = null;
BasSuppliesUseForm frm = (BasSuppliesUseForm) form;
BasSupplies basSupplies = new BasSupplies();
try {
// 设置部门初始值
BasSuppliesUse basSuppliesUseObject = frm.getSaveObject();
this.getBasSuppliesService().update(basSuppliesUseObject );
StringBuffer scriptString = new StringBuffer();
scriptString.append("<html>\n\r");
scriptString.append("<head>\n\r");
scriptString.append("<meta http-equiv='Content-Type' content='text/html; charset=GBK'>\n\r");
scriptString.append("</head>\n\r");
scriptString.append("<body>\n\r");
scriptString.append("<scriptlanguage='javascript'>\n\r");
scriptString.append("parent.location.href=\"BasSupplies.do?method=refreshViewRecord&suppliesId="+ frm.getQueryObject().getBasSupplies().getSuppliesId() + "\"\n\r"); //这里定义父页面的src,这里是关键
scriptString.append("</script>\n\r");
scriptString.append("</body>\n\r");
scriptString.append("</html>");
response.setContentType("text/html;charset=GBK");
response.getWriter().print(scriptString.toString());
} catch (Exception e) {}
return forward;
}
这样就实现了。