Frage

Ich habe eine Anwendung, die verwendeten Frühling 3. ich einen Blick Resolver habe, die basierend auf einem String meine Ansichten aufbauen. Also in meinem Controller Ich habe Methoden wie diese.

@RequestMapping(...)
public String method(){
  //Some proccessing
  return "tiles:tileName"
}

Ich brauche einen RedirectView zurückzukehren, um die doppelte Vorlage aufgrund der Aktualisierung der Seite im Browser zu lösen, so dass ich gedacht Frühling Umleitung zu verwenden: Präfix. Das Problem ist, dass es nur leitet, wenn ich Benutzer eine URL das Präfix (nicht mit einem Namen ein Resolver verstehen) ändern. Ich wollte so etwas tun:

@RequestMapping(...)
public String method(){
  //Some proccessing
  return "redirect:tiles:tileName"
}

Gibt es eine Möglichkeit zur Verwendung RedirectView mit dem String (der auflösbare Ansicht name) I aus der jedem Controller-Methode erhalten?

Danke

War es hilfreich?

Lösung

der Anruf mit vorangestellten Umleitung: ist eine URL, die in einer Standard-Browser 302-Umleitung gesendet wird. Sie können nicht auf eine Ansicht umleiten, weil eine Ansicht nicht eine URL ist. stattdessen müssen Sie eine neue servelet Zuordnung zu einem ‚Erfolg‘ Ansicht und dann auf diese stattdessen

umleiten
@RequestMapping("processing.htm")
public String method(){
  //Some proccessing
  return "redirect:success.htm"
}

@RequestMapping("success.htm")
public String method(){
  return "tiles:tileName"
}

Dieser Fall funktioniert gut, wenn Sie nur zeigen müssen, um eine ‚Danke‘ Seite, die keine spezifischen Daten aus der Verarbeitungsstufe erfordert. jedoch, wenn Sie Ihr Erfolg Seite braucht einige Informationen aus der Verarbeitung zu zeigen, gibt es 2 Möglichkeiten, es zu tun.

1) übergeben Sie die Informationen in der URL als get Post ( "Umleitung: success.htm message = hallo"). das ist unglaublich hackable und damit sehr unrecommended.

2) der bessere Weg ist zum Speichern von Informationen, die in der HTTP-Sitzung, mit @SessionAttributes und @ModelAttribute

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top