如何附加到URL路径Grails

时间:2014-04-25 20:17:54

标签: url grails servlet-filters url-mapping

我正在使用Grails 1.3.7,而我正试图弄清楚如何在我的URL路径中附加状态(区域)缩写(NM,AZ,UT)。所以它看起来像这样:

localhost/NM/action/

localhost/UT/action2/3/

必须对网站上的所有网址进行此操作。我也不想更改URLMappings.groovy文件,过滤器会帮忙吗?

我创建了这个过滤器定义:

def filters = {
    ...
    regionAppender(uri:'/**') {
        before = {
            if (request.region) {
                if (!request.forwardURI.contains(request.region)) {
                    String[] split = s.split("/");
                    String redirectUri = split[0] + "/" + request.region
                    if (split.length > 1) {
                        for (int i = 1; i < split.length; i++){
                            redirectUri = redirectUri + "/" + split[i]
                        }
                    }
                    redirect(uri: redirectUri)
                    return false
                }
                return true
            }
            return true
            }
    }
}

但它似乎并没有起作用。有没有办法做到这一点,或者我是否更改了所有的URLMappings?

1 个答案:

答案 0 :(得分:0)

我没有对此进行测试,但可能与您的请求声明有关...请尝试使用params.region

Take a look here

def filters = {
    ....
            before = {
                if(params?.id) {