您的位置:首页 > Web前端 > JavaScript

解决action配置jsp页面在新窗口中打开的问题

2014-07-28 02:27 387 查看
最近做项目遇到一个遇到,session超时重新跳转到登录页面。

在action中检查session,如果为空,返回login页面。但是我那个项目用了框架集,有的页面重新跳转到login页面,但是显示在子框架集中。

在网上查了一些资料,发现在action的配置文件struts.xml中配置result,指定type="redirect",login页面仍在显示在子框架集中。网上说action在配置文件中无法配置在新

窗口打开页面。于是,只能另想办法。

最后,想到一种解决方案。

在配置文件让action先跳到一个中间过渡的页面relogin.jsp。代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'relogin.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function reDirectToLogin(){
alert("登录已失效,请重新登录。");
window.top.document.location.href = "login.jsp";
}
</script>
</head>
<body onload="reDirectToLogin()" style="background-color:#EFF2F5">
</body>
</html>


在这个页面中,alert提示用户session过期,然后
window.top.document.location.href = "login.jsp";
在新窗口中打开登录页面。

至此,问题解决了。

ps:如有更好的方法,忘指教。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐