2016-05-10 6 views
0

I Frühling bin mit erstellen und herunterladen Excel-Tabelle Ich möchte einige Variablen in Modell hinzuzufügen Verfahren in requestionga Mapping, so dass ich in anderen Anfrage maping Methode könnenwie Modellmodell in @RequestMapping-Methoden im Frühjahr mvc ohne Sitzung zu teilen?

@RequestMapping("/contentUploadDetails/{content_type}/{date}") 
public ModelAndView contentUpload(
     @PathVariable(value = "content_type") String content_type, 
     @PathVariable(value = "date") String date) { 
    List<CountAndValue> ls = contentCountImp 
      .getuploadedContentCountDatewise(content_type, date); 
    model.addObject("CountAndValue", ls); 
    return model; 
} 

Wie Sie oben

sehen in kann
model.addObject("CountAndValue", ls); 

ich möchte dieses Modell Wert in meinem anderen requestMapping Methode verwenden

@RequestMapping(value = "/ContentUploadExport", method = RequestMethod.GET) 
public ModelAndView getExcel() { 

    return new ModelAndView("CountAndValueExcel", "CountAndValue", CountAndValue); 
} 

wie kann ich CountAndValueExcel Modellobjekt verwenden, das wird mit der ersten Methode in der zweiten Methode mit der Verwendung der Sitzung festgelegt? Kann ich das Modellobjekt (das die Liste des Klassenobjekts enthält) von der Ansicht an den Controller zurücksenden?

+0

Angenommen, Sie leiten von einem Controller zu einem anderen um, können Sie Flash-Attribute verwenden, checkout - http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-flash- Attribute –

Antwort

0

Sie können ein Objekt in einer Session speichern:

@RequestMapping("/contentUploadDetails/{content_type}/{date}") 
public ModelAndView contentUpload(HttpServletRequest request, 
     @PathVariable(value = "content_type") String content_type, 
     @PathVariable(value = "date") String date) { 
    List<CountAndValue> ls = contentCountImp 
      .getuploadedContentCountDatewise(content_type, date); 
    model.addObject("CountAndValue", ls); 
    request.getSesion().setAttribute("CountAndValue", ls); 
    return model; 
} 

Und dann abrufen Sie es wie folgt aus:

@RequestMapping(value = "/ContentUploadExport", method = RequestMethod.GET) 
public ModelAndView getExcel(HttpServletRequest request) { 
    List<CountAndValue> CountAndValue = (List<CountAndValue>) request.getSession().getAttribute("CountAndValue"); 
    return new ModelAndView("CountAndValueExcel", "CountAndValue", CountAndValue); 
} 

Schrieb es aus meinem Kopf, nicht getestet.

+0

Thanx für die Antwort Ich habe es bereits mit der Sitzung funktioniert, aber es gibt andere Möglichkeiten, wenn Dnt Session-Variable –

+1

verwenden möchte, ich fürchte nicht, da Sie Status zwischen zwei Anforderungen nicht beibehalten können, ohne ein Objekt auf dem Server zu verwenden Seite. Es könnte auch etwas nach Maß sein, aber der beste Weg ist, mit Sitzungen zu gehen. Ich bin auch kein großer Fan von Sitzungen, aber manchmal gibt es keinen anderen Weg für ein bestimmtes Problem. Vielleicht könnte es auch ein Design-Problem sein, kann nicht ohne einen tieferen Einblick in den Anwendungsfall erzählen. – localhost