2012-03-26 107 views
0

我發展與中,我想用關鍵字從一個JSP頁面重定向到其他頁面瓷磚struts2的項目,response.sendRedirect是在Struts2不工作瓷磚

<% 
    response.sendRedirect("search"); 
    %> 

在正常的JSP頁面代碼正在工作。

response.sendRedirect("search.jsp"); 

但是當我用瓷磚,它不工作。當我直接運行頁面重定向其

,但是當我把這個一些其他的網頁它不是重定向。我試着用空白html頁面的代碼,沒有任何其他編碼,仍然沒有工作。

「搜索」是在struts.xml中頁面的動作名稱。有沒有額外的屬性,我需要在response.sendRedirect中添加?

目前我使用

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=search"> 

做我的工作。它是否會在任何方面造成任何問題?

我條件檢查它重定向到多個地方,它的工作。

<%  
    int k=0; 
    if(k==1){ 
    %> 

    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=search"> 
    <% 
    } 
    else 
    { 
    %> 

    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=guestprofile"> 
    <% 
    } 
    %> 

當我從答案的理解,嘗試這樣

response.sendRedirect("viewuniqueRedirect"); 

頁和

<action name="viewuniqueRedirect" > <result type="chain">viewunique</result> </action> 
在struts.xml中

,但沒有工作

+0

我看到[類似的問題](http://stackoverflow.com/a/961179/1041341),但解決方案在這裏不起作用 – 2012-03-26 05:38:16

+0

您可以使用result type redirectAction並調用搜索操作並將所需參數傳遞給動作。 – 2012-03-26 05:52:46

+0

@MohanaRaoSV,對不起,我沒有得到的方法,請舉一個例子 – 2012-03-26 06:11:00

回答

2

你是對懷疑你的元標記方法非常難看。

對於struts2,您返回一個tiles結果類型。這要麼在struts.xml中定義,要麼爲了產生這個結果而註釋該操作。

你的動作,你要重定向不應該是返回一個磚導致類型,但重定向/ redirectAction類型。對於這些結果的一個在這裏看到:Action redirect in struts.xml

你的行動應該做所有必要的處理(如果有的話)和瓷磚應構成視圖。如果你真的打算重定向,那麼嘗試編寫任何視圖是件很浪費的事情。

你指着(here)的問題可能仍然適用於這種環境。也就是說,如果您已經編寫了內容,並且您可能在編寫任何更多內容之前嘗試重定向並返回,但是tile通常由多個視圖組成,並且將繼續寫入HTTP響應,因此可能無法重定向。如果你只有一個構成視圖的jsp,那麼我不知道。但是我再一次不會考慮調用瓷磚。

+0

搜索和guestprofile是struts.xml和tiles.xml中的有效映射,兩者都用於具有超鏈接的相同項目。 – 2012-03-28 04:16:35

+0

現在我使用meta作爲使功能工作的臨時方法,實際上我需要的是Response.sendRedirect本身。由於它不工作,我不得不尋找一種臨時方法。 – 2012-03-28 04:19:24

+0

如果我加載頁面,我使用Response.sendRedirect,它的工作,但如果該頁面進入一個流程(如從其他頁面的順序)。它不工作。 – 2012-03-28 04:20:48