2017-01-16 37 views
1

我想知道是否有可能在子域是通配符時使用Spring的@RequestMapping訪問子域。Spring獲取通配符子域@RequestMapping

例如,我想寫一個方法,當任何數量的子域被請求時將被調用,並且還能夠獲取該人請求的實際子域。

所以,如果他們訪問sub1.example.com,它會打到一個方法,我可以將「sub1」映射到一個字符串變量。

如果他們訪問sub2.example.com,它將使用與前面示例相同的方法,並且我還可以將「sub2」映射到String變量。

這可能嗎?

回答

1

我最終什麼事就解決了這一做法與Spring MVC的:

@RequestMapping(value="/someUrl") 
public String someControllerMethod(ModelMap model, HttpServletRequest request) 
{ 
    String subdomain = request.getServerName().split("\\.")[0]; 

    log.info("subdomain is: " + subdomain); 

    // more code here 
} 

我只是確保在HttpServletRequest的傳遞給方法,然後從請求中提取的子域。這段代碼唯一的問題是,你的子域名中不能有一個點(。)(否則它只會選取子域的第一部分)。

此解決方案適用於我的需求。但是如果你有更好的解決方案,隨時發佈,如果更好,我會把它作爲正確的答案。