2010-11-17 33 views
4

J'utilise Tiles 2 dans mon printemps 3 application MVC i définit une forme:Carreaux et redirigent dans Spring MVC

 <definition name="addcompany.htm" extends="baseLayout"> 
     <put-attribute name="title" value="Add Company"/> 
     <put-attribute name="body" value="/WEB-INF/jsp/addcompany.jsp"/>  
    </definition> 

et:

addcompany.(class)=org.springframework.web.servlet.view.tiles2.TilesView 
addcompany.url=addcompany.htm 

Et voici mon contrôleur:

@RequestMapping(value="/addcompany.htm", method=RequestMethod.GET) 
public ModelAndView getForm() { 
    logger.info("Getting form!"); 
    ModelAndView mav = new ModelAndView(); 
    logger.info("Loading form"); 
    Company cmp = new Company(); 
    mav.addObject("company",cmp); 
    mav.setViewName("addcompany"); 
    return mav; 
} 

@RequestMapping(value="/addcompany.htm", method=RequestMethod.POST) 
public String postForm(@ModelAttribute("company") Company cmp) { 
    logger.info("post form!"); 
    companyService.saveCompany(cmp); 
    logger.info("post form"); 
    return "redirect:tiles:companylist"; // How do i redirect? 
} 

En utilisant Tiles2, le REDIRECT ne fonctionne pas.

Une idée de comment rediriger après un POST réussi en utilisant des tuiles?

grâce

EDIT: solution est d'ajouter ceci dans les views.properties:

redirectcompanylist.(class)=org.springframework.web.servlet.view.RedirectView 
redirectcompanylist.url=/companylist.htm 

Et retour redirectcompanylist dans le contrôleur

Répondre

4

Vous devez utiliser l'URL chemin lors de la redirection. Comme ceci: return redirect:/companylist.htm qui va ensuite à la méthode correspondante dans le contrôleur.

+0

Merci, mais j'ai une erreur 500: Impossible de résoudre la vue avec le nom 'redirect: /companylist.htm'. companylist a son propre carreau aussi comme addcompany – guigui42

+0

Avez-vous une méthode dans votre contrôleur annotée avec '@RequestMapping (value ="/companylist.htm ", method = RequestMethod.GET)'? – hleinone

+0

oui je l'ai. et quand je vais à l'URL/companylist.htm dans mon navigateur cela fonctionne. Mais après avoir rempli le formulaire et la société a été ajoutée dans la base de données, la redirection me donne cette erreur: javax.servlet.ServletException: Impossible de résoudre la vue avec le nom 'redirect: /companylist.htm' dans servlet – guigui42