2017-03-03 3 views
1

Ich habe einen Spring-Controller, der eine Umleitung an einen anderen Controller zurückgibt.So übergeben Sie einen Parameter innerhalb von zwei Feder-Controller

Zuerst sieht wie folgt aus

@RequestMapping(value = "/some-url", method = 
{ RequestMethod.POST, RequestMethod.GET }) 
public String test(final Model model) 
{ 
    ... 
    return "redirect:http://someurl/checkout/response"; 
} 

Der zweite ist der Aufruf des ersten Controllers Einhaken, so dass es wie folgt aussieht:

@RequestMapping("/**/response") 
public String handleResponse(@RequestParam final MultiValueMap<String, String> params, @Valid @ModelAttribute final Cyber cyber, 
     final BindingResult bindingResult, final Model model, final HttpSession session, final HttpServletRequest request) throws CMSItemNotFoundException... 

Ich frage mich, wie die ‚@RequestedParam params‘ passieren und das Cyber-Objekt vom ersten Controller zum zweiten.

Antwort

0

Sie können @SessionAttributes verwenden und das Modell an einen anderen Inhalt senden.

Weitere click here

1

Wenn Sie zusätzlich wollen diese Attribute automatisch aus der Sitzung gelöscht werden, nachdem sie verbraucht, wo können Sie alternativ FlashAttributes verwenden. Dazu müssen Sie in der Methode handleResponse einen RedirectAttributes-Parameter deklarieren und darauf addFlashAttribute aufrufen. Zum Beispiel addFlashAttribute("cyber", cyber). Diese sind als Modellattribute im Zielcontroller verfügbar und werden automatisch aus der Sitzung entfernt.

Verwandte Themen