2012-03-26 10 views
0

Ich bin ein struts2 Projekt mit Fliesen zu entwickeln, in denen ich das Stichwort zum Umleiten von einer jsp Seite zu anderen Seite als,response.sendRedirect nicht in Struts2 Arbeits Fliesen

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

Im normalen jsp Seiten verwenden möchten, die Code arbeitet als.

response.sendRedirect("search.jsp"); 

aber wenn ich mit Fliesen benutze, funktioniert es nicht.

wenn ich die Seite direkt seine Weiterleitung ausführen, aber wenn ich diese andere Seite rufe wird es nicht umleiten. Ich habe den Code mit einer leeren HTML-Seite ohne weitere Codierungen ausprobiert, funktioniert aber immer noch nicht.

"Suche" ist der Name der Aktion in der Seite struts.xml. Gibt es ein zusätzliches Attribut, das ich in response.sendRedirect hinzufügen muss?

Derzeit bin ich mit

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

für meine Arbeit. Ob es in irgendeinem Aspekt irgendein Problem schaffen wird?

Ich überprüfte es mit Bedingungen für die Umleitung zu mehreren Orten, es funktioniert.

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

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

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

Wie ich aus Antwort verstanden, versucht, wie diese

response.sendRedirect("viewuniqueRedirect"); 

in Seite und

<action name="viewuniqueRedirect" > <result type="chain">viewunique</result> </action> 

in struts.xml, aber nicht funktioniert

+0

Ich sah [eine ähnliche Frage] (http://stackoverflow.com/a/961179/1041341), aber Lösung funktioniert hier nicht –

+0

Sie können Ergebnistyp redirectAction und Call-Suche Aktion und übergeben erforderliche Parameter an die Aktion . –

+0

@MohanaRaoSV, Tut mir leid, ich bekomme nicht die Methode, geben Sie ein Beispiel –

Antwort

2

Sie haben Recht zu vermuten, Ihre Meta-Tag-Methode als sehr hässlich.

Mit struts2 geben Sie einen Kacheltyp zurück. Dies ist entweder in Ihrer struts.xml definiert oder die Aktion ist mit Anmerkungen versehen, um dieses Ergebnis zu erzielen.

Ihre Aktion, die Sie umleiten möchten, sollte nicht einen Kacheltyp zurückgeben, sondern einen redirect/redirectAction-Typ. Für eines dieser Ergebnisse siehe hier: Action redirect in struts.xml

Ihre Aktion sollte alle erforderlichen Verarbeitung (falls vorhanden) und Kacheln sollten die Ansicht zusammensetzen. Wenn Sie wirklich umleiten wollen, ist es eine Verschwendung, zu versuchen, irgendeine Ansicht zu bilden, was auch immer.

Die Frage, auf die Sie hingewiesen haben (here), gilt in diesem Zusammenhang wahrscheinlich immer noch. Das heißt, Sie können nicht umleiten, wenn Sie Inhalte geschrieben haben und versuchen, vor dem Schreiben weiterer Inhalte umzuleiten und zurückzukehren, aber Kacheln bestehen oft aus mehreren Ansichten ... und werden weiterhin in die HTTP-Antwort schreiben und somit wahrscheinlich die Weiterleitung auf Null setzen . Wenn Sie nur einen einzelnen JSP haben, der die Ansicht zusammensetzt, dann weiß ich es nicht. Aber noch einmal würde ich nicht daran denken, Kacheln überhaupt aufzurufen.

+0

Suche und Gastprofil sind gültige Zuordnungen in struts.xml und tiles.xml, beide verwende ich im selben Projekt mit Hyperlinks. –

+0

Jetzt benutze ich Meta als eine temporäre Methode, um die Funktionalität zum Laufen zu bringen. Eigentlich brauche ich Response.sendRedirect selbst. Da es nicht funktioniert, musste ich nach einer temporären Methode suchen. –

+0

Wenn ich die Seite laden, in der ich Response.sendRedirect verwende, funktioniert es, aber wenn diese Seite in einem Fluss kommt (wie in Reihenfolge von anderen Seiten). Es funktioniert nicht. –