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