Domanda

Ho un'applicazione che utilizza Primavera 3. Ho un risolutore vista che costruisce le mie opinioni sulla base di una stringa. Così nel mio controller ho metodi come questo.

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

Ho bisogno di restituire un RedirectView per risolvere la presentazione duplicato a causa di aggiornare la pagina nel browser, così ho pensato di utilizzare Primavera reindirizzamento: prefisso. Il problema è che reindirizza solo quando all'utente un'URL alterare il prefisso (non con un nome un resolver può capire). Volevo fare qualcosa di simile:

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

C'è un modo per utilizzare RedirectView con la stringa (il nome della vista risolvibile) ottengo dal metodo di ogni controller?

Grazie

È stato utile?

Soluzione

la chiamata con prefisso redirect: è un URL, che viene inviato in un browser standard reindirizzamento 302. Non è possibile reindirizzare ad una vista, perché la vista non è un URL. invece avrete bisogno di una nuova mappatura servelet a una visione 'successo' e quindi reindirizzare a che, invece

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

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

questo caso funziona bene quando hai solo bisogno di mostrare un 'grazie' di pagina, che non richiede dati specifici della fase di lavorazione. tuttavia, se la vostra pagina deve successo per mostrare alcune informazioni dal trattamento, ci sono 2 modi per farlo.

1) trasmettere le informazioni nell'url come un post get ( "redirect:? Success.htm message = hi"). questo è incredibilmente hackable, e quindi altamente sconsigliato.

2) il modo migliore è quello di memorizzare le informazioni nella sessione HTTP, utilizzando @SessionAttributes e @ModelAttribute

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top