2008-10-16 55 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") %>