我们正在开发我们的项目。我们希望根据用户访问我们网站的国家/地区向用户显示数据。
我有一个存储国家/地区位置的字段。通过使用geoip grails插件。
我的问题是,我们是否可以在未命中任何 Controller / Action 的情况下,使用覆盖该网站的国家/地区名称来初始化 session ,可以说在某些配置文件中或其他位置。
最佳答案
您应该可以在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 )
}
}
}
}
}
应该(尽管我还没有尝试过)检查 session 中是否存在
geolocation
,如果不存在,则应从geoIpService
中获取它。
关于grails - Grails地理位置-初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149823/