分页链接与URL Grails中的区域设置前缀

时间:2013-05-08 16:27:54

标签: grails pagination url-mapping

如果您在URL映射中使用语言前缀,例如

/$lang/$controller/$action?/$id?

并且您生成的URL除了lang参数之外还包含参数,您将获得以下URL,以获取其他参数,例如offset:

/book/list?offset=10&lang=en

但这打破了我的映射。相反,我希望URL看起来像这样:

/en/book/list?offset=10

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

创建以下bean(假设你的lang param被称为“lang”):

class LangAwareUrlMappingsHolderFactoryBean extends UrlMappingsHolderFactoryBean {

    @Override
    public UrlMappingsHolder getObject() throws Exception {
        def obj = super.object
        obj.DEFAULT_CONTROLLER_PARAMS = [UrlMapping.CONTROLLER, UrlMapping.ACTION,     "lang"] as Set
        obj
    }   
}

并调整 resources.groovy

"org.grails.internal.URL_MAPPINGS_HOLDER"(LangAwareUrlMappingsHolderFactoryBean) { bean ->
    bean.lazyInit = true
}

你会得到

/en/book/list?offset=10

而不是

/book/list?offset=10&lang=en