在struts2中登录后返回调用者调用者页面

时间:2013-04-24 03:54:34

标签: struts2 struts-config

我有一个download.jsp页面,它具有仅在登录时下载文件的功能。 当他点击下载选项时,它会要求登录下载并重定向到登录页面,当他验证用户时应该重定向到download.jsp

这是我的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

1 个答案:

答案 0 :(得分:0)

您可以尝试实现上述功能的选项很少

HTTP Referer标题如

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

这方面几乎没有问题,防火墙和浏览器可以阻止它,这可能会导致一些问题,虽然我没有看到任何这样的问题并且已经使用了几次。

其他更可靠的解决方案是使用隐藏文件或将当前页面URL附加为查询字符串并在您的应用程序中使用它,如

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

您可以使用此变量查找当前页面URL,并在登录后重定向。

如果您正在使用Spring安全性,它会构建此功能,用于存储使用来源的信息,并在身份验证后重定向回同一页面。

希望这可以帮到你