我的弹簧控制器/请求映射结构有问题。在web.xml中,我定义了2个调度程序servlet,它映射了以下请求路径:
- Servlet:/ pathA / *
- Servlet / pathB / *
醇>
我的所有控制器都在com.myproject.controllers包中定义,因此两个控制器都服务于/ pathA / *和/ pathB / *下的路径。 我正在两个servlet中进行组件扫描。如何为以下Controller设置ReuestMapping注释:
@Controller
public class MyController {
// /pathA
public void action1() {
}
// /pathA/action2
public void action2() {
}
}
我真的很困惑,我尝试了很多不同的事情,希望你能帮助我!
此致 海因里希
答案 0 :(得分:0)
尝试这样的smt
@RequestMapping(method = RequestMethod.GET, value = "/pathA")
@RequestMapping(method = RequestMethod.GET, value = "/pathA/bla-bla")
如果没有帮助,那么urlrewriters会有一些变体。
答案 1 :(得分:0)
如果您确实需要使用多个DispatcherServlet
,最好的方法可能是将控制器放在单独的包中,并将每个servlet的组件扫描限制在自己的包中。
如果由于某种原因无法执行此操作,可以按如下方式配置servlet:
<bean class = "org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name = "alwaysUseFullPath" value = "true" />
</bean>
在这种情况下,您可以使用@RequestMapping
中的servlet路径,如stas所示。