关于 Struts ActionForward 跳转的问题

时间:2022-12-22 10:17:02
简单的说,就是如果在Action 中处理完毕之后,跳转到之前进入这个action的页面!

比如说,在没有登陆的情况下浏览帖子,看到精华之处,想要留言,这个时候从这个帖子所在的位置登陆,登陆成功之后,跳转返回之前浏览的那个帖子所在的页面

再举一个例子,也是在浏览到任意一个页面之后,切换了不同的语言显示,然后页面保持在原来浏览的页面!

望指点一二,有代码说明最好!

2 个解决方案

#1


可以用JavaScript解决,总体思想是:用js在父窗口打开新窗口,然后在新窗口触发js关闭自己,然后刷新父窗口:
1.拿你所举的登录例子来说吧,点击登录按钮的时候你可以触发以下事件;
<a href="#" onclick="openWin('xxx.do?method=xxx& 参数=参数值}','addorg',600,200);">登录</a>

备注:我的那method=xxx你可以自己考虑用不用,因为我的Action继承了DispachAction,自重parameter是method;
.................

下面这段是打开新窗口的js代码,如果觉得繁琐,也可以写个简单点的....
function openWin(f,n,w,h,s){
sb = s == "1" ? "1" : "0";
l = (screen.width - w)/2;
t = (screen.height - h)/2;
sFeatures = "left="+ l +",top="+ t +",height="+ h +",width="+ w
+ ",center=1,scrollbars=" + sb + ",status=0,directories=0,channelmode=0";
openwin = window.open(f , n , sFeatures );
if (!openwin.opener)
openwin.opener = self;
openwin.focus();
return openwin;
}

2、在登录页面执行登录,例如点击登录按钮;执行以下代码:

function closewindow(){
if(window.opener){
window.opener.location.reload(true);
window.close();
}
}

以上代码可以返回初始页面,至于登录的时候执行的操作,比如要把用户自己帐号保存到session中,记得自己做吧
  希望能帮助你!

#2


一般都是用一个 returnUrl 做成参数实现的,比如

index.jsp 去登录页面,则

login.jsp?returnUrl=index.jsp

当然,那个returnUrl 可以从 request.getHeader("referer"); 拿到

#1


可以用JavaScript解决,总体思想是:用js在父窗口打开新窗口,然后在新窗口触发js关闭自己,然后刷新父窗口:
1.拿你所举的登录例子来说吧,点击登录按钮的时候你可以触发以下事件;
<a href="#" onclick="openWin('xxx.do?method=xxx& 参数=参数值}','addorg',600,200);">登录</a>

备注:我的那method=xxx你可以自己考虑用不用,因为我的Action继承了DispachAction,自重parameter是method;
.................

下面这段是打开新窗口的js代码,如果觉得繁琐,也可以写个简单点的....
function openWin(f,n,w,h,s){
sb = s == "1" ? "1" : "0";
l = (screen.width - w)/2;
t = (screen.height - h)/2;
sFeatures = "left="+ l +",top="+ t +",height="+ h +",width="+ w
+ ",center=1,scrollbars=" + sb + ",status=0,directories=0,channelmode=0";
openwin = window.open(f , n , sFeatures );
if (!openwin.opener)
openwin.opener = self;
openwin.focus();
return openwin;
}

2、在登录页面执行登录,例如点击登录按钮;执行以下代码:

function closewindow(){
if(window.opener){
window.opener.location.reload(true);
window.close();
}
}

以上代码可以返回初始页面,至于登录的时候执行的操作,比如要把用户自己帐号保存到session中,记得自己做吧
  希望能帮助你!

#2


一般都是用一个 returnUrl 做成参数实现的,比如

index.jsp 去登录页面,则

login.jsp?returnUrl=index.jsp

当然,那个returnUrl 可以从 request.getHeader("referer"); 拿到