Question

J'ai une application qui utilise Spring 3. J'ai un résolveur de vue qui construit mon point de vue sur la base d'une chaîne. Donc, dans mes contrôleurs d'avoir des méthodes comme celle-ci.

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

Je dois retourner un RedirectView pour résoudre la soumission en double en raison de la mise à jour de la page dans le navigateur, donc je l'ai pensé à utiliser redirect Spring: préfixe. Le problème est qu'il redirige uniquement lorsque l'utilisateur une URL que je modifie le préfixe (pas avec un nom d'un résolveur peut comprendre). Je voulais faire quelque chose comme ceci:

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

Y at-il moyen d'utiliser RedirectView avec la chaîne (le nom de la vue résoluble) je reçois de la méthode every du contrôleur?

Merci

Était-ce utile?

La solution

l'appel préfixé par redirect: est une URL, qui est envoyé dans un navigateur standard redirection 302. vous ne pouvez pas rediriger à une vue, car une vue n'est pas une URL. à la place, vous aurez besoin d'une nouvelle cartographie servelet à une vue « succès », puis redirigez qu'au lieu

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

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

ce cas fonctionne très bien quand il vous suffit de montrer une page « merci », qui ne nécessite pas des données spécifiques de l'étape de traitement. Cependant, si votre page succès doit montrer des informations de traitement, il y a 2 façons de le faire.

1) transmettre les informations dans l'URL comme un poste get ( "redirect: success.htm message = salut"). c'est incroyablement piratable, et donc très unrecommended.

2) la meilleure façon est de stocker des informations dans la session http, en utilisant @SessionAttributes et @ModelAttribute

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top