我们正在开发grails项目。我们希望根据用户访问我们网站的国家/地区向用户显示数据。 我有一个我存储国家位置的字段。通过使用geoip grails插件。
我的问题是我们是否可以使用国家/地区名称来初始化会话,该网站会在其访问任何控制器/操作之前被过度放置,例如在某个配置文件或其他位置。
答案 0 :(得分:3)
你应该可以在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
获取它。