1

Grailsバージョン3.1.12を使用しています。いくつかのアクションでデフォルトURLマッピングを無効にする方法

手動で管理するために、アクションのデフォルトのURLマッピングを無効にしたいとします。例えば、コントローラを与えられた:

class MyController { 

    myAction() { 
     render('Hello') 
    } 
} 

このアクションマップは、デフォルトでmy/myActionに、しかし私は、このマッピングを無効にして、UrlMappings.groovyで定義されたこの1のようなカスタムのものを使用する:

static mappings { 

    "/$controller/$action?/$id?(.$format)?"{ 
     constraints { 
      // apply constraints here 
     } 
    } 

    '/myCustomAction'(controller: 'my', action: 'myAction') 
} 

/$controller/$action...マッピングは初めてGrailsプロジェクトを作成するときにデフォルトで出荷され、まだ他のいくつかのアクションに対して必要なデフォルトの規約が用意されていますが、myActionのデフォルトマッピングを除外します。しかし、エンドポイントmy/myActionは、デフォルトのマッピングに応え続ける

static excludes = ['/my/myAction'] 

:私はUrlMappings.groovyでexcludes設定を使用して試してみました。

希望の動作を達成するにはどうすればよいですか?

+0

'' '?それは '' myController/myAction'''ではないでしょうか? – dsharew

+0

@DegenSharew Grailsの規約は 'controllerName/actionName'です。この名前にはクラス名の「Controller」部分が含まれていません。 http://docs.grails.org/3.1.12/guide/single.html#urlmappingsを参照してください。 – tcrespog

答えて

1

ルートmy/myActionは、デフォルトの/$controller/$actionマッピングによって生成されています。そのように、あなたのコントローラーを除外するために、そのマッピングの制約のセクションを編集する必要があります、このようなものは、(醜いいくつか何をalbiet)動作するはずです:

お使いのコントローラのマッピングは、 `` `私/ myActionにあるか
"/$controller/$action?/$id?(.$format)?"{ 
    constraints { 
     controller(validator: { return it != 'my'}) 
    } 
} 
関連する問題