2012-07-26 100 views
0

我使用Struts2的为我的项目的页面。 从事简单的注册项目。当用户登录时,他被引导到他的个人资料,但在浏览器的后退按钮登录页面再次出现。 XML:刷新上打后退按钮

<action name="home" class="bharat.Home"> 
      <result name="success">/jsp/home.jsp</result> 
      <result name="student">/jsp/Welcome.jsp</result> 
</action> 
<action name="Login" class="bharat.LoginAction"> 
      <result name="input">/index.jsp</result> 
      <result name="success">/jsp/Welcome.jsp</result> 
</action> 

Home.java:

public String execute() { 
      if((String)ActionContext.getContext().getSession().get("studentName")!=null) 
     { 
      return "student"; 
     } 
     if((String) ActionContext.getContext().getSession().get("instructorName")!=null) 
     { 
      return "instructor"; 
     } 
     session = ActionContext.getContext().getSession(); 
     session.put("roleName","notAdmin"); 
     return SUCCESS; 
    } 

回到Home.jsp

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta name="cache-control" content="no-cache" /> 
<meta name="expires" content="0" /> 
<meta name="pragma" content="no-cache" /> 
    <sx:head/> 

我想,当用户正在登录后打回按钮,他必须被重定向回同一页。谁能帮我请..

回答

0

您可以使用后和重定向方法,所有你需要的时候用户登录,他/她应该被重定向到欢迎页面。 如果你看到银行网站或任何其他安全的网站,他们已经部署了相同的机制,它工作得很好。

其次,我建议不ActionContext发挥其作为Struts2的给你一个更清洁,灵活的方式来实现SessionAware接口,通过实施这你的行动是从底层框架依赖洒脱测试

+0

谢谢你宝贵的时间。 – Bharat 2012-07-26 13:38:51

+0

我试图重定向到欢迎页,但仍然在打后退按钮将它移动到登录page.Sir,我必须失去了一些东西,你可以解决eloborate。 – Bharat 2012-07-26 14:12:20

2

据我所知,目前的流动是这样的:

用户连接到URL - >提供了登录页面上登录 - >加载第一 页

你认为改变流动于以下内容:

用户连接到URL - >提供了登录页面上登录 - >转到页 与autoredirect直接到第一页 - >加载第一页。

这种方式,当用户从'第一页'恢复按钮时,它会得到重定向页面,并自动返回'第一页'。

+0

感谢您的宝贵时间。 – Bharat 2012-07-26 13:39:16

-1
<script type="text/javascript"> 
    function fn() 
     { 
       window.open("WelcomeDirect.action","_self");    
     } 
</script> 
</head> 
<body onLoad="fn()"> 
Reloading..... 
</body> 

重定向页面