1
我們正在開發我們的Grails項目。我們希望根據他們訪問我們網站的國家向用戶展示數據。 我有一個地方,我存儲的國家的位置。通過使用geoip grails插件。Grails的地理 - 位置初始化
我的問題是,我們可以初始化從它擊中了任何控制器/行動之前被excessed該站點的國名的會議,讓一些配置文件或其他地方說。
我們正在開發我們的Grails項目。我們希望根據他們訪問我們網站的國家向用戶展示數據。 我有一個地方,我存儲的國家的位置。通過使用geoip grails插件。Grails的地理 - 位置初始化
我的問題是,我們可以初始化從它擊中了任何控制器/行動之前被excessed該站點的國名的會議,讓一些配置文件或其他地方說。
你應該能夠做到這一點的一個Filter。像這樣的事情,放在grails-app/conf
爲GeoFilters.groovy
:
class GeoFilters {
def geoIpService
def filters = {
countryCheck(controller:'*', action:'*') {
before = {
if(!session.geolocation) {
session.geolocation = geoIpService.getLocation(request.remoteAddr)
}
}
}
}
}
如果(我還沒有嘗試過,雖然)檢查,看看是否存在於會話geolocation
,如果沒有,就應該從它取geoIpService
。
喜添,感謝名單快速回復:)我想這個過濾器將與服務器,那裏的戰爭將要部署的IP初始化會話。根據誰去訪問我們的網站 – lucky
我不認爲request.remoteAddr是服務器的IP ... – Philippe
@lucky菲利普是正確的用戶將它重新初始化會話,'request.remoteAddr'是客戶端的IP地址作爲'String' ... –