2010-04-13 13 views
0

J'ai une application qui utilise Spring 3. J'ai un résolveur de vue qui construit mes vues basées sur une chaîne. Donc, dans mes contrôleurs, j'ai des méthodes comme celle-ci.Redirect print: préfixe numéro

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

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

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

Est-il possible 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

Répondre

3

l'appel préfixé par redirect: est une URL, qui est envoyé dans un navigateur standard redirection 302. vous ne pouvez pas rediriger vers une vue, car une vue n'est pas une URL. à la place, vous aurez besoin d'un nouveau mappage de servelet à une page « succès » vue, 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 lorsque vous avez juste besoin de montrer un « merci », qui ne nécessite pas de données spécifiques de l'étape de traitement. Toutefois, si votre page de réussite doit afficher certaines informations issues du traitement, il existe deux façons de le faire.

1) passer l'information dans l'url comme un message get ("redirect: success.htm? Message = hi"). c'est incroyablement piratable, et donc hautement non recommandé.

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