J'ai plus de 20 formulaires qui sont liés depuis la même page. Certains formulaires partagent le même contrôleur, tandis que d'autres utilisent le leur. Par exemple, le formulaire A
, B
et C
utilise DefaultController
, tandis que le formulaire D
utilise ControllerD
.
Ce que j'aimerais réaliser est de mapper l'URL à chaque formulaire de manière cohérente.
Donc, idéalement, la page de liens devrait ressembler à:
soit ça
<a href="/formA.html">Form A</a>
<a href="/formB.html">Form B</a>
<a href="/formC.html">Form C</a>
<a href="/formD.html">Form D</a>
ou ca:
<a href="/form.html?name=A">Form A</a>
<a href="/form.html?name=B">Form B</a>
<a href="/form.html?name=C">Form C</a>
<a href="/form.html?name=D">Form D</a>
La question est de savoir comment mapper chaque URL au contrôleur approprié. Avec le premier modèle d'URL, vous mapperiez formD.html
à ControllerD
, mais vous ne savez pas comment mapper form[A|B|C].html
à DefaultController
. Avec le deuxième modèle d'URL, je ne sais même pas par où commencer ...
Quelqu'un a-t-il fait quelque chose comme ça?
Puisque personne ne semble avoir encore mis la réponse complète ici:
Le @RequestMapping
l'annotation peut prendre un tableau pour son paramètre "value". Pour mapper cela au niveau du contrôleur en utilisant le premier modèle, vous utiliseriez:
@Controller
@RequestMapping(value={"/formA.html", "/formB.html", "/formC.html"})
public class ControllerA {
}
Et alors:
@Controller
@RequestMapping(value="/formD.html")
public class ControllerD {
}