Подтвердить что ты не робот

Spring MVC: сопоставление нескольких URL-адресов одному и тому же контроллеру

У меня есть 20+ форм, которые связаны с одной и той же страницы. Некоторые формы используют один и тот же контроллер, в то время как другие используют свои собственные. Например, в форме A, B и C используйте DefaultController, а в форме D используется ControllerD.

То, что я хотел бы достичь, - это сопоставить URL-адрес каждой формы в последовательном порядке.

Итак, в идеале страница ссылки будет выглядеть так:

  • либо этот

    <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>
    
  • или это:

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

Вопрос заключается в том, как сопоставить каждый URL-адрес с соответствующим контроллером. С первым шаблоном URL вы сопоставляете formD.html с ControllerD, но не знаете, как сопоставить form[A|B|C].html с DefaultController. Со вторым шаблоном URL я даже не знаю, с чего начать...

Кто-нибудь сделал что-то подобное?

4b9b3361

Ответ 1

Так как никто, похоже, пока не дал полного ответа:

Аннотация @RequestMapping может принимать массив для своего параметра "значение". Чтобы отобразить это на уровне контроллера с использованием первого шаблона, вы должны использовать:

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

}

И затем:

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

}