2010-10-10 175 views
34

我喜歡20多個從同一頁面鏈接的表單。一些表單共享相同的控制器,而其他表單使用他們自己的。例如,表格ABC使用DefaultController,而表格D使用ControllerDSpring MVC:將多個URL映射到相同的控制器

我想實現的是以一致的方式將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。使用第一個網址格式,您可以將formD.html映射到ControllerD,但不知道如何將form[A|B|C].html映射到DefaultController。有了第二個URL模式,我甚至不知道從哪裏開始...

有沒有人做過類似的事情?

回答

127

由於沒有人似乎已經把完整的答案就在這裏又:

@RequestMapping註釋可以採取其「價值」參數數組。在使用第一圖案控制器級映射這一點,你可以使用:

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

} 

然後:

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

} 
+0

感謝明確的答案:) – Hossein 2014-04-16 09:32:13

+0

我把這個在我的方法,而不是控制器它效果很好。 – user3885927 2016-06-28 00:46:54

相關問題