1

我们正在 grails 中开发我们的项目。我们希望根据用户访问我们网站的国家/地区向用户显示数据。我有一个存储国家/地区位置的字段。通过使用 geoip grails 插件。

我的问题是,我们是否可以在访问任何控制器/操作之前使用站点超出的国家/地区名称来初始化会话,比如说在某个配置文件或其他地方。

4

1 回答 1

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.

于 2011-11-16T10:18:20.670 回答