私は、Grailsの中に、以下のURLマッピングを使用します、 "ログアウト" ...
すなわち、mydomain.com/user/show/someusernameする mydomain.com/someusernameべきルート、 mydomain.com/loginはmydomain.com/user/show/へのルートいけませんログイン。
私は、Grailsの中に、以下のURLマッピングを使用します、 "ログアウト" ...
すなわち、mydomain.com/user/show/someusernameする mydomain.com/someusernameべきルート、 mydomain.com/loginはmydomain.com/user/show/へのルートいけませんログイン。
あなたはこのマッピングのためcontrainstsを使用することができます。
"/$id"{
controller = "user"
action = "show"
constraints {
//add a validator for $id from url mapping
id(validator: {
return !(it in ['login', 'logout'])
})
}
}
それはクールだ、あなたがそれを行うことができるか分からなかった! :) – elias
filterを使用し、そこからリダイレクトします。あなたはコントローラやアクションにそれが特定したい場合は
class UrlMappingFilters {
def filters = {
filterUrlKeywords(controller: '*', action: '*') {
def keywords = ['login', 'logout']
before = {
if (params.id in keywords) {
// redirect to start, or render error...
redirect(uri: '/')
return false
}
}
}
}
}
、'*'
の代わりにその名前を使用します。
続きを読む:
私はRESTベースのエンドポイント用のもののこのタイプを行っています数多くの時間を費やしており、Grailsは十分理解できるほどスマートです あなたが欲しいもの。 UrlMappingsファイルの順序は重要であることに注意してください。ログイン方法をしていますが、「/ユーザID」を打ったとき、あなたがに送信されます。そして、あなたは「/ログインを」ヒットするときに認証に行きます
class UrlMappings {
static mappings = {
"/login" { controller: 'auth', action: 'login' }
"/logout" { controller: 'auth', action: 'logout' }
"/$id" { controller: 'user', action: 'view' }
}
}
:たとえば、あなたがこれを定義することができます
user:view:期待どおりのユーザーID。
* user/show/login *とはどういう意味ですか? 'login'はアクションですか? – dmahapatro
mydomain.com/someusernameはmydomain.com/user/show/someusernameにルーティングする必要があります。 mydomain.com/loginからmydomain.com/user/show/loginにルーティングしないでください。 – confile