2008-10-16 58 views
2

有谁知道我如何检索页面来自JSP内的前一个JSP URL?Struts JSP以前的链接

我可以从会话/请求/响应对象中检索吗?

希望这是有道理的,谢谢

回答

0

(假设的Struts 1)

井在struts-config.xml中有动作元素的输入参数(在动作映射部分) 因此,在你的行动(Java类),你可以这样访问该值:

public ActionForward action(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { //do some stuff return mapping.getInputForward(); //return to the caller }

,所以如果你想要一个动作返回到它的原始页面,你可以定义 指向相同操作但具有不同名称和输入值的多个操作条目。

希望有所帮助。

+0

不幸的是,'inputForward'可能并不总是你来自的地方。 将一个动作生成的HTML包含一个表单发布到第二个动作是完全可行的。发生这种情况时,'inputForward'将引用第二个动作的JSP页面,而不是第一个。 – belugabob 2008-10-16 13:38:19

+1

大约一周前在Stackoverflow上提出了类似的问题,并且在涉及HttpReferrer头部的几个建议之后,提出了一个替代方案。我会放弃并在此发布链接。 – belugabob 2008-10-16 13:39:33

0

假设您正在讨论在您自己的应用程序中进行导航,并假设struts 2可以将参数传递给该操作,接下来可以使用下一个操作的名称来调用它。比方说,你在struts.xml中定义的动作:

<action name="myaction" class="com.me.MyActionClass"> 
    <result name="success">${next}</result> 
</action> 

在MyActionClass你将不得不宣布未来其getter和setter属性。在调用此操作时,您必须提供下一个值,该值可能与您要从中调用操作的页面具有相同的名称。

4

非常感谢 - 道歉不能够作为该网站似乎已经改变了,我不能看到如何做到这一点,但我用

2
更简单

,以纪念我的正确答案:

<%= request.getHeader("Referer") %>