首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

100,就求给小弟我一个struts1的指点

2012-01-09 
100,就求各位大哥给我一个struts1的指点!我用window.open()打开一个新页面,执行添加之后想再调用父页面的

100,就求各位大哥给我一个struts1的指点!
我用window.open()打开一个新页面,执行添加之后想再调用父页面的查询操作显示添加内容,相信大家也做过吧。

在父页面中添加一个hidden值,判断button类型,然后
function   submitForm(act)   {
//判断事件类型
document.getElementById( 'status ').value   =   act;
//提交
document.F00009Form.submit();
}
传值。F00009Form在Session中
再进行save操作后,程序如下:
String   strActionStatus   =   f00009form.getStatus();
if((Constant.SAVE).equals(strActionStatus)){
                        //Add操作
                        if(operation.saveAction(dateManageForm,request)){
                                //
                                operation.searchAction(dateManageForm,   request);
                               
                                //回F00009页面
                                return(mapping.findForward(Constant.SUCCESS));
                        }
                                                             
                        return(mapping.findForward(Constant.FAIL));
}
struts.config内容如下:
<action   path= "/F00009 "  
name= "F00009Form "  
type= "team4.StrutsAction.F00009Action "  
scope= "session "
input= "/F00009.jsp "
validate= "true ">
<forward   name= "success "   path= "/jsp/F00009.jsp "   />
<forward   name= "search "   path= "/F00009.do "   />
<forward   name= "fail "   path= "/jsp/F00009.jsp "   />
</action>
当然我也想调用
if((Constant.SAVE).equals(strActionStatus)){
                        //Add操作
                        if(operation.saveAction(f0009form,request)){
                                //
                                operation.searchAction(f0009form,   request);
                               
                                f00009form.setStatus( "search ");
                                //回F00009页面
                                return(mapping.findForward(Constant.SEARCH));
                        }


                                                             
                        return(mapping.findForward(Constant.FAIL));
}
让页面再执行一下do操作,但是不行,第二次执行的还是status的值还是save。
这个问题搞了我一周了,帮我解决下,我实在不行了!!!
问题解决马上揭帖!!!


[解决办法]
operation.searchAction(f0009form, request);

f00009form.setStatus( "search ");
//回F00009页面
return(mapping.findForward(Constant.SEARCH));


~~~~~~~~
f00009form的status属性的值虽然重新赋值 但是
f00009form对象并没有更新

[解决办法]
window.opener.parent.Location(obj.pguid,obj.guid);
window.opener:调用的页面
window.opener.parent调用的父页面
window.opener.parent.Location父页面中的Location方法
obj.pguid,obj.guid参数1,参数2


[解决办法]

window.open()打开一个新页面,执行添加之后想再调用父页面的查询操作显示添加内容
---------------------------------------------
给个例子你:

var timer;
var winOpen;
function IfWindowClosed()
{
var frm = document.yourForm;
if (SubWin.closed == true)
{
window.clearInterval(timer);

frm.action = "your action ";//返回到一览 且会显示你刚才增加的记录
frm.submit();
}
}

//你要弹出的PAGE
function doAddPage(parm)
{
var form = " ";
var code = "entotu ";
var url = "弹出页面的动作 ";
CmWindowOpen(url, '明增加页面,600,800);

timer=window.setInterval( "IfWindowClosed() ",300);
}

//打开窗口
function CmWindowOpen(Source, WindowName, wHeight, wWidth){
CmClose();

scrnW = screen.width;
scrnH = screen.height;

t = (scrnH - wHeight) /2;
l = (scrnW - wWidth) /2;

windowParam = " ";
windowParam += "toolbar=no,menubar=no,scrollbars=yes,status=yes,location=no ";
windowParam += ",directories=no,copyhistory=no,resizable=no ";
windowParam += ",height= " + wHeight + ",width= " + wWidth + ",left= " + l + ",top= " + t;

SubWin = window.open(Source , WindowName, windowParam );
if(SubWin != null)
{
SubWin.opener.document.body.onfocus = function() {focuswin(SubWin);};
SubWin.focus();
}
}

我现在就这么用的;还凑合~
[解决办法]
window.open页面在递交form的时候也要
window.open.document.F00009Form.submit()
不要忘记

热点排行