2011-09-27 304 views
2

我有一個Spring3控制器,其中使用@RequestMapping註釋。我知道我可以使用params值根據url參數的存在或缺少進行路由,但是有沒有一種方法可以根據兩個參數之一的存在來進行路由?RequestMapping存在多個參數之一

理想我有類似如下:

@RequestMapping(value="/auth", params="error OR problem") 
public ModelAndView errorInAuthenticate() 

哪裏來errorInAuthenticate途徑,如果參數錯誤或問題存在。

回答

0

關於這個的討論,你可能能夠使用雁從這個問題

Multiple Spring @RequestMapping annotations

回答你的 - 只需要添加多個RequestMapping,看看是否有作品?

@RequestMapping(value="/auth", params="error") 
@RequestMapping(value="/auth", params="problem") 
public ModelAndView errorInAuthenticate() 

+3

Java不允許上的方法相同類型的兩個或多個註釋。因此,每個方法不能有多個@RequestMapping批註。 – AndyB

1

不幸的@RequestMapping參數使用AND而不是OR來組合。 (Source

1

簡單地映射二者PARAMS如not required並進行測試:

@RequestMapping(value="/auth") 
public ModelAndView errorInAuthenticate(@RequestParam(value="error", required=false) String errorParam, 
             @RequestParam(value="problem", required=false) String problemParam) { 

    if(errorParam != null || problemParam != null) { 
     //redirect 
    } 
} 
+0

爲你+1 .... –