2016-07-07 150 views
1

@RequestMapping在以下情況下應如何表現?Spring @RequestMapping嵌套行爲

@Controller 
@RequestMapping("/search") 
public class SearchController { 

    @RequestMapping(value = "search", method = RequestMethod.GET) 
    public String search(ModelMap map) { 
     // Stuff 
    } 
} 

我有一個已經有這個配置了好幾年,並回答了像www.domain.com/appname/search請求的項目。經過非常小的更新,其中控制器未受影響,該應用程序現在只響應www.domain.com/appname/search/search

我原本預料到後者的行爲,但是會導致它改變的是什麼?

回答

0

控制器應該處理www.domain.com/appname/search/search的請求。

更改的原因竟然是將spring-webmvc依賴項從版本3.1.1更新到3.2.2。我檢查了更改日誌,沒有看到任何可以指示此特定更改的內容,但測試確定是這種情況。

spring-webmvc依賴帶來了傳遞依賴於這取決於你使用的是什麼版本spring-contextspring-corespring-aopspring-webspring-beansspring-expression等。無論如何,這些都從3.1.1移到了3.2.2,並且沿着這一行改變了這種行爲。