2010-10-10 41 views
34

Mam ponad 20 formularzy, które są połączone z tej samej strony. Niektóre formularze mają tego samego kontrolera, podczas gdy inne używają własnego. Na przykład formularz A, B i C używają DefaultController, natomiast formularz D używa ControllerD.Spring MVC: Mapowanie wielu adresów URL do tego samego kontrolera

Co chciałbym osiągnąć to mapowanie adresu URL do każdego formularza w spójny sposób.

Więc idealnie, strona związek będzie wyglądać następująco:

  • albo ten

    <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> 
    
  • lub to:

    <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> 
    

Pytanie brzmi, jak mapować każdy Adres URL do odpowiedniego kontrolera. Przy pierwszym wzorcu adresów URL mapowałbyś formD.html na ControllerD, ale nie wiesz, jak zamapować form[A|B|C].html na DefaultController. Z drugim wzorcem adresu URL, nie wiem nawet, od czego zacząć ...

Czy ktoś zrobił coś takiego?

Odpowiedz

127

Ponieważ nikt nie wydaje się umieścić pełną odpowiedź na jeszcze tutaj:

@RequestMapping adnotacja może wziąć tablicę na jego parametr „wartości”. Aby odwzorować to na poziomie kontrolera z wykorzystaniem pierwszego wzoru, należy użyć:

@Controller 
@RequestMapping(value={"/formA.html", "/formB.html", "/formC.html"}) 
public class ControllerA { 

} 

, a następnie:

@Controller 
@RequestMapping(value="/formD.html") 
public class ControllerD { 

} 
+0

Dzięki za wyraźną odpowiedź :) – Hossein

+0

ja kładę to na moim sposobie zamiast kontrolera i działa świetnie. – user3885927

Powiązane problemy