Spring MVC redirect Nachricht ohne erweiterung der URL

Diskutiere Spring MVC redirect Nachricht ohne erweiterung der URL im Web Tier Forum; Konkretes Beispiel: @GetMapping("/language/{id}") public ModelAndView edit(@PathVariable("id") Long id, RedirectAttributes redirectAttrs)...

  1. Schuriko
    Schuriko Neues Mitglied
    Konkretes Beispiel:
    Code (Java):
    @GetMapping("/language/{id}")
            public ModelAndView edit(@PathVariable("id") Long id, RedirectAttributes redirectAttrs) {
                 Optional<Language> language = languageService.findById(id);
               
                 if ( language.isPresent() ) {
                     return initializeMask(language.get(), "language.mask.title.edit");
                 } else {
                     ModelAndView modelAndView = new ModelAndView("redirect:/languages");
                     modelAndView.addObject("error_message", "id is not defined");
                   
                     return modelAndView;
                 }            
            }
     
    ich rufe zum editieren eines Datensatzes /language/<id> auf. In der Funktion wird für id der entsprechende Datensatz ermittelt. Konnte die spezifizierte Datensatz ermittelt werden, dann wird die Maske angezeigt. Sollte der Datensatz nicht ermittelt werden können, dann wird ein redirect auf die Liste mit der Meldung, das die ID nicht definiert ist zurückgegeben.

    Führe ich es nach dem obigen Code aus, dann wir mir eine URL aufgerufen

    http://localhost:8080/languages?error_message=id+is+not+defined

    Führe ich es mit einem FlashAttribute über RedirectsAttributes aus, dann wird mir an die URL eine jsession angehängt.

    Wie kann ich eine Meldung zurückgeben, ohne das mir der Text als jession oder attribute-werte in der URL vorkommt?
     
  2. Vielleicht hilft dir dieses Buch hier weiter.
  3. Flown
    Flown Administrator Mitarbeiter
    Was gibt es denn noch für Möglichkeiten wie man Attribute übermittelt im HTTP Umfeld?
     
  4. Schuriko
    Schuriko Neues Mitglied
    Das ist eine gute Frage. Ich komme eigentlich aus dem PHP Umfeld. Dort kann man z.B. eine Session setzen und dann ein Redirect ausführen, ohne dass eine Session ID angehängt wird. Also denke ich mir irgendwie sollte es auch in Java / Spring möglich sein, wie sonst könnte man eine beliebige Anzahl von Werte direkt über mehrere Seiten weitergeben?
     
  5. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    RedirectView und RedirectAttributes ;)

    Allerdings ist ein Redirect im Fehlerfall nicht immer das sinnvollste, man könnte da auch einfach die View mit passendem Fehlercode zurückgeben...
     
  6. Schuriko
    Schuriko Neues Mitglied
    s.o.

    Wenn ich nur die View zurückgebe, so habe ich im Addressfeld des Browser immer noch

    http://localhost:8080/language/1

    stehen was nicht stimmen würde.
     
  7. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Keine Ahnung was ich oben sehen soll?



    Grad erst gesehen, dass es um GET und nicht POST geht.

    Die übliche Lösung: zeig einfach 'ne 404-Seite an.
     
  8. Wenn du Java lernen möchtest, empfehlen wir dir dieses Buch hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Spring MVC redirect Nachricht ohne erweiterung der URL - Ähnliche Themen

Spring Boot/Html-Content/Web-Server
Spring Boot/Html-Content/Web-Server im Forum Allgemeine Java-Themen
Spring Boot - MVC - Error flushen
Spring Boot - MVC - Error flushen im Forum Allgemeine Java-Themen
Spring Boot und RestFull
Spring Boot und RestFull im Forum Allgemeine Java-Themen
Spring Data: Multiple representations of the same entity
Spring Data: Multiple representations of the same entity im Forum Datenbankprogrammierung
Spring ServerQueue
Spring ServerQueue im Forum AWT, Swing, JavaFX & SWT
Thema: Spring MVC redirect Nachricht ohne erweiterung der URL