2016-05-14 15 views
1

さて、私はgrailsを学ぼうとしていますが、私はUrlMappingsの仕組みを理解できません。Grailsコントローラのマッピング、完全な誤解

これは私のコードです:

package naturalselector 

class UrlMappings { 

static mappings = { 
    "/pleasemapit"(view: '/index') 
    "/creatures/" { 
     controller = 'NaturalSelectionController' 
     action = 'viewCreatures' 
    } 
    "500"(view:'/error') 
    "404"(view:'/notFound') 
} 
} 

コントローラクラス:

package naturalselector 

class NaturalSelectionController { 

def viewCreatures() { 
    println("HIT viewCreatures") 
    List creatures 
    6.times { idx -> 
    creatures.add(new RandomCreature()) 
    println creatures.get(idx) 
    } 
    redirect (view: "/index") 
} 
} 

コントローラは、Grailsのアプリの\コントローラである\ naturalselector \ UrlMappingsは同じディレクトリにあります。

すべての例でコントローラには小文字の値があります。 私は分かりません。それはパッケージですか?コントローラをパッケージとして指定するのはなぜですか? 私はちょうどコントローラのメソッドを実行したい、私はまだページをレンダリングしたくない、単にインデックスにリダイレクトする。ありがとうございました。

+0

あなたは、アクションにリダイレクトしないかなり確信ビュー。リダイレクト(action: "index")を使用すると、リダイレクトが機能します。ジェフの答えは残りの部分を見てください。 – billjamesdev

答えて

3

パッケージですか?

なぜあなたはパッケージとしてコントローラを指定しますか?

あなたはそうではありません。これに代えて

...

static mappings = { 
    "/pleasemapit"(view: '/index') 
    "/creatures/" { 
     controller = 'NaturalSelectionController' 
     action = 'viewCreatures' 
    } 
    "500"(view:'/error') 
    "404"(view:'/notFound') 
} 

使用この...

static mappings = { 
    "/pleasemapit"(view: '/index') 
    "/creatures" { 
     controller = 'naturalSelection' 
     action = 'viewCreatures' 
    } 
    "500"(view:'/error') 
    "404"(view:'/notFound') 
} 

またはこの...

static mappings = { 
    "/pleasemapit"(view: '/index') 
    "/creatures"(controller: 'naturalSelection', action: 'viewCreatures') 
    "500"(view:'/error') 
    "404"(view:'/notFound') 
} 
+0

URLマッピングの詳細については、http://docs.grails.org/3.1.6/guide/theWebLayer.html#urlmappingsを参照してください。 –

+0

ありがとうございます。思ったよりも簡単だった – arseniyandru

関連する問題