Grails Controller Mapping,完全误解

时间:2016-05-14 20:58:54

标签: grails grails-controller grails-3.0

好的,我正在尝试学习grails而且我不知道UrlMappings是如何工作的。

这是我的代码:

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-app \ controllers \ naturalselector \ UrlMappings在同一个目录中。

在所有示例中,控制器具有小写值。 我不明白。是包裹吗?为什么要将控制器指定为包? 我只想在控制器中执行方法,我不想渲染任何页面,只是重定向回索引。谢谢。

1 个答案:

答案 0 :(得分: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')
}