2010-10-10 117 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

相关问题