2017-04-25 37 views
1

我想開發一個返回json文件的服務。獲取所有路徑變量

@RequestMapping(value = "/{fileName}/**", method = RequestMethod.GET, produces = { "application/json" }) 
public String jsonREST(@PathVariable String fileName) { 
    StringBuilder jsonBuilder = new StringBuilder(); 
    logger.info("===> File name: " + fileName); 
    try { 
     BufferedReader bf = new BufferedReader(new FileReader("fileName + ".json")); 
     String line = null; 
     while ((line = bf.readLine()) != null) { 
      jsonBuilder.append(line); 
     } 
    } catch (Exception e) { 
     System.out.println("Error Parsing: - "); 
    } 
    return jsonBuilder.toString(); 
} 

如果json文件位於子目錄或其他位置,我需要獲取路徑。

用例:

  • 本地主機:8080 /我的目錄/我的子DIR /我的JSON的文件
  • 本地主機:8080 /我的JSON的文件

你有什麼想法,我怎樣才能得到例如

my-directory/my-sub-dir/my-json-file 

或者,如果您有另一種解決方案,做同樣的工作,我會訴孔路徑ERY高興爲

問候

+0

你的代碼是低效的各種原因。爲什麼不只是返回'FileSystemResource'並讓Spring Boot自己完成它呢? –

+0

謝謝@lyubomyr,但你有一個想法,我怎麼能做到這一點?我的意思是我怎麼可以得到的路徑 – Victor

回答

1

可以通過讓春天注入HttpServletRequest並獲得其如下得到完整的請求URL:

@RequestMapping(value = "/{fileName}/**", method = RequestMethod.GET, produces = { "application/json" }) 
public String jsonREST(HttpServletRequest request, @PathVariable String fileName) { 
    String uri = request.getRequestURI(); 

    //Do your stuff here 
} 
+0

感謝@greg它的作品 – Victor