根据参数处理不同控制器中的相同URL - Spring MVC

时间:2015-08-03 21:01:37

标签: java spring spring-mvc

我有一个处理特定网址的控制器

@RequestMapping(value= {"/myurl"})
public ModelAndView handleMyURL()

相反,我希望有2个独立的控制器,让我根据传递给它的参数来处理这个/ myurl。

如果网址为

/myurl?a=1 

转到控制器A,否则使用控制器B. 有没有办法做到这一点?

我发现了类似的问题Spring MVC - Request mapping, two urls with two different parameters 有人提到“在misc控制器中使用一个方法,根据请求参数调度到不同的控制器(注入)。” ,我该如何实现呢?

2 个答案:

答案 0 :(得分:7)

控制器1

@RequestMapping(value= {"/myurl"}, params = { "a" })
public ModelAndView handleMyURL()

控制器2

@RequestMapping(value= {"/myurl"}, params = { "b" })
public ModelAndView handleMyURL()

请查看this post的第4章了解更多详情

答案 1 :(得分:-3)

@Controller
@RequestMapping(value= {"/myurl"})
public TestController{
    @Autoware 
    private TestAController testAController;
    @Autoware 
    private TestBController testBController;

    public void myMethod(String a){
        if(a.equals("1"){
            testAController.foo(a);
        }else{
            testBController.foo(a);
        }

    }
}
@Controller
@RequestMapping(value= {"/myurl1"})
public class TestAController{
   public void foo(String a){
    ...
}
}
@Controller
@RequestMapping(value= {"/myurl2"})
public class TestBController{
    public void foo(String a){
     ...
    }
}