2016-11-21 9 views
2

残りのURL部分をSpringコントローラで数学的に計算する方法はありますか?Spring MVCでURLパーツをどのように一致させることができますか?

つまり、私のルートが/user/{userId}/*の場合、userIdパラメータとその他のURLを取得できますか?一部?

/user/1/this/is/a/path.html?a=bため例えば私は、いくつかのソリューションを見てきましたし、いくつかのグーグルででしたが、彼らはそれ以上の年齢のためであることに起因答えに(ほとんどの場合、それを行うための一種の奇妙な方法に思える userId = 1userUrl = /this/is/a/path.html?a=b

を取得する必要がありますSpringのバージョン)より最近のバージョンでは、このeをどのようにしてクリーンな方法で行うことができますか?

答えて

3

はい、ここではこの例ではthis答え

@GetMapping("/user/{userId}/**") 
    public void get(@PathVariable("userId") String userId, HttpServletRequest request){ 
     String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); 
     String patternMatch = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); 
     AntPathMatcher apm = new AntPathMatcher(); 
     String finalPath = apm.extractPathWithinPattern(patternMatch, path); 
    } 

から適応例であるuserId = 1finalPath = this/is/a/path.html

関連する問題