2013-04-24 56 views
1

我有一个download.jsp页面,它具有仅在登录时下载文件的功能。 当过他点击它要求登录下载下载选项,他重定向到登录页面,当他鉴别用户应重定向到download.jsp在struts2中登录后返回来电者页面

这里是我的struts.xml文件

<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <package name="default" extends="struts-default"> 
     <result-types> 
      <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> 
     </result-types> 
     <action name="loginAction" method="login" class="com.vaannila.action.LoginAction"> 
      <result name="sucess" type="tiles">welcome</result> 
      <result name="failure" type="tiles">home</result> 

     </action> 
    </package> 
</struts> 

在LoginAction类我有一个认证,并返回成功或失败和由此产生的页面被称为

我怎样才能登录后呼叫者返回页面download.jsp只有一个方法登录

+0

你会介意发布你的控制器的“登录”方法吗?如果你总是想返回“download.jsp”,那么使用动作重定向很容易。但如果你想返回“上一页”,你必须在某个地方保存该URL,例如GET参数或者在会话 – Kossel 2013-04-24 04:17:46

+0

中,登录方法只能根据用户关注返回“成功或失败”两个值。会议。是否仍然可以返回上一页并返回“成功或失败” – pavan 2013-04-24 10:21:23

回答

0

你有,你可以尝试实现上述功能的几个选项

HTTP Referer头像

final String refer = request.getHeader("Referer"); 

没有与此,防火墙和很好的浏览器可以阻止它,很少有问题这可能会导致一些问题,虽然我还没有看到任何这样的问题,并使用它几次。

其他解决方案,它是更可靠的方法是使用一个隐藏的文件或追加当前页面的URL作为查询字符串,并用它在你的应用程序一样

<a href="login?destination=theCurrentUrl">Login</a> 

你可以使用这个变量来找出当前页面URL并可以在登录后重定向它。

如果您使用的是Spring安全性,则它具有此功能,可在其中存储使用信息的位置,并在身份验证后将其重定向回同一页面。

希望这可能会帮助你