如何在struts2中获取调用者URL?

时间:2011-08-22 10:04:28

标签: tags struts2

我有一个struts2页面,该页面使用<s:action>executeResult="true"的共享操作向页面添加标题内容。但是,需要在 header 操作中完成一些处理,这需要检索实际页面的URL(也称为调用者页面)。但是如果我在头部动作的jsp中使用<s:url>,它只会检索头部动作的URL。所以我想请各位专家来告诉我如何实现我想要的结果。

提前致谢。

3 个答案:

答案 0 :(得分:0)

我不确定我是否会跟随...如果我没有回答你想要的东西,请随时纠正我。

但是,在调用<s:set>之前,您应该能够将<s:action>标记与适当的范围(可能是请求)一起使用,以使您需要的值可用于下一个操作。请参阅:http://struts.apache.org/2.2.1.1/docs/set.html

答案 1 :(得分:0)

我会考虑使用请求对象:

String referrer = request.getHeader("referer"); //referer spelling intentional

通过字符串操作做任何你需要的事情。

答案 2 :(得分:0)

以下就是我做的事情。

在主页面上,使用s:urls:set获取当前网址和参数,并将其保存在请求范围内

<s:set name="pageurl" scope="request">
    <s:url includeParams="none" encode="true"/>
</s:set>
<s:set name="pageparams" scope="request" value="#parameters"/>

在标题页上,您可以使用下面的

来检索它们
        <form action="<s:property value='#attr.pageurl'/>" >
            <s:iterator value="#attr.pageparams" var="param">
                <s:hidden name="%{#param.key}" value="%{#param.value}" id="_header_%{#param.key}"/>                 
            </s:iterator>
        </form>