Перезапись URL-адреса Grails - PullRequest
       0

Перезапись URL-адреса Grails

1 голос
/ 03 ноября 2010

Хотите сделать URL-адреса оптимизированными для SEO при использовании Grails Webflow. Это довольно ограничивает использование конвенций Grails, и его сложно обойти. Например, у меня есть поток с именем fooProcess в контроллере, называемый FooController, когда я запускаю поток, мне нужно отображение: / foo / bar / test вместо / foo / fooProcess? Excecution = e1s2

class FooController {
 def fooProcessFlow {
   showFoo {
   }
 }
}

Я попытался с помощью перенаправления и указать URI, но это не поддерживается, Grails жалуется, что страница не найдена

fooProcessFlow {
 showFoo {                              
   redirect(uri:"/foo/bar/test")    
 }
}

Grails / Foo / fooProcess.dispatch / externalRedirect: / Foo / бар / тест

Кроме того, перенаправление - это конечное состояние в потоке, если я хочу только визуализировать страницу, я должен использовать метод рендеринга и указать имя представления или структурировать мои представления в соответствии с соглашением о веб-потоках.

fooProcessFlow {
 showFoo {                              
   render(view:"/foo/bar/test") 
   on "add".to "add"
 }
}

В этом случае будет URL

/foo/fooProcessProcess?execution=e6s1

Кто-нибудь имел дело с этим делом раньше?

Кто-нибудь использовал UrlRweriteFilter с веб-потоками в Grails? http://code.google.com/p/urlrewritefilter/

кен

1 Ответ

0 голосов
/ 27 апреля 2011

Вы можете использовать URLMappings Grails Plugin

См .: http://grails.org/doc/latest/ref/Plug-ins/URL%20mappings.html

Редактировать этот файл: grails-app / conf / UrlMappings.groovy

Помещаем что-то вроде этого внутрь:

class UrlMappings {

    static mappings = {

        "/foo/bar/test" (controller: "foo", action: "fooProcessFlow")

        "/$controller/$action?/$ids?"{
            constraints {
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...