鍍金池/ 問(wèn)答/Java  Linux/ springboot如何實(shí)現(xiàn)同一個(gè)方法映射到不同的url

springboot如何實(shí)現(xiàn)同一個(gè)方法映射到不同的url

1.我想仿照github或者gitlab做一個(gè)網(wǎng)站,網(wǎng)站功能是查看服務(wù)器上的文件,那么首先就得查看文件夾結(jié)構(gòu)。這兩個(gè)網(wǎng)站的url是隨著當(dāng)前文件夾的位置變化的,比如當(dāng)我查看A文件夾下的B.java文件,那么我當(dāng)前的url后綴就是/A/B.java。但是在響應(yīng)請(qǐng)求的Controller層,應(yīng)該是同一個(gè)方法處理這些不同url后綴的請(qǐng)求,我不知道如何實(shí)現(xiàn)。

2.我嘗試使用@RequestParam和@PathVariable,圖片描述

圖片描述

但是都失敗了,這兩個(gè)方法都不能處理多級(jí)目錄結(jié)構(gòu)。

圖片描述

我從網(wǎng)上查資料發(fā)現(xiàn)可以用正則表達(dá)式匹配url,但是仍然不能匹配多級(jí)路徑。
請(qǐng)問(wèn)這個(gè)Controller響應(yīng)請(qǐng)求的方法應(yīng)該怎么寫(xiě)才能實(shí)現(xiàn)類(lèi)似gitlab的效果呢?或者說(shuō),有人能告訴我這是哪方面的知識(shí),謝謝!

回答
編輯回答
久愛(ài)她

圖片描述

附上我后來(lái)的解決方案

2018年1月6日 12:59
編輯回答
檸檬藍(lán)

可以全匹配直接把request傳進(jìn)來(lái)處理, 像下面這樣, ttest走下面方法, 其他走上面方法, 請(qǐng)求的url拿到了就好處理了

    @GetMapping("/**")
    public String path(HttpServletRequest request) {
        return request.getRequestURI();
    }

    @GetMapping("/ttest")
    public String ttest() {
        return "lalala";
    }
2017年6月4日 21:46