2012-06-27 73 views
-1

在我的Struts 1.1應用程序中,我有6個jsp表單映射到單個操作類。如何從動作類的請求中獲取JSP的url?

我想從action類中的請求中獲取jsp的url。

因爲在我的Struts配置了這樣映射

<action 

     path="/formaction" 

    </action> 

此外,當我在任何形式遞交點擊,我的URL看起來像這樣

https://mywebsite/formaction.do 

所以,當我把請求。的getURL所有形式我得到相同的URL

https://mywebsite/formaction.do 

所以我的問題是,是他們的一種方式,我可以得到這樣從請求中類似的方法

https://mywebsite/myform1.jsp 
+0

您是否試圖讓一個Action轉發到6個不同的jsp文件(取決於url),還是將您的操作轉發給一個jsp文件,然後將這6個文件中的一個包含在內? –

+1

會有什麼意義?像Struts這樣的MVC框架的重點是讓所有的請求都通過控制器(動作),而不是直接調用視圖(JSP)。 –

+0

@MartinWilson所有這六個jsps都有不同的前向/錯誤頁面。那不是問題。我想要請求url。 – mjamal14

回答

0

您可以在您的表單超類中創建一個用於存儲jsp url的成員。你將不得不設置成員雖然在每一個jsp的......像這樣

<html:hidden name="thisForm" property="jspCaller" styleId="jspCaller"/> 

你不得不然後用JavaScript在窗口onload事件或在文檔準備事件的jQuery填充它。

<script> 
var jspCaller = <%=request.getServletPath()%>; 
document.getElementByID("jspCaller").value = jspCaller; 
</script> 
0

使用ActionForward你可以得到jsp頁面Name。 。

字符串jspName = mapping.findForward( 「成功」)的getName();

-1

在struts操作類中使用request.getHeader(「Referer」)應該爲您提供引用JSP的URL。