RequestMapping用于不同servlet的控制器

时间:2010-10-27 06:06:45

标签: java spring spring-mvc

我的弹簧控制器/请求映射结构有问题。在web.xml中,我定义了2个调度程序servlet,它映射了以下请求路径:

  
      
  1. Servlet:/ pathA / *
  2.   
  3. Servlet / pathB / *
  4.   

我的所有控制器都在com.myproject.controllers包中定义,因此两个控制器都服务于/ pathA / *和/ pathB / *下的路径。 我正在两个servlet中进行组件扫描。如何为以下Controller设置ReuestMapping注释:

@Controller
public class MyController {

  // /pathA
  public void action1() {
  }

  // /pathA/action2
  public void action2() {
  }
}

我真的很困惑,我尝试了很多不同的事情,希望你能帮助我!

此致 海因里希

2 个答案:

答案 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所示。