Grails UrlMappings问题

时间:2011-02-02 15:30:27

标签: rest grails service

我正在grails中实现一个rest服务,所以我创建了一个控制器:

class LoaderController {

  def index = { }

  def save = {

    String input = params.er3f
    render 'OK'

  }
}

并在UrlMappings中添加了以下内容:

"/loader/$id?" (controller:loader) {
   action = [GET:"save"]
}

当我运行http://localhost:8080/MyApp/loader?er3f=12345678时,我得到404和描述所请求的资源(/MyApp/WEB-INF/grails-app/views/loader/index.jsp)不可用。

但是,当我运行http://localhost:8080/MyApp/loader/save?er3f=12345678时,工作正常。

我的UrlMappings出了什么问题?

1 个答案:

答案 0 :(得分:3)

对于初学者,您没有使用您定义的映射。你指定一个id参数但是传递er3f并且不使用/ syntax但是把它放在querystring中? - 调用http://localhost:8080/MyApp/loader/12345678将使用语法。

但是你也在映射中混合了两种不同的方法,因此它不会被触发。你可以使用Map并在parens中指定动作和控制器,或者使用Closure并在那里指定它们,但是你不能混合它们。

最后,您已指定id参数但正在控制器中查找er3f参数,因此该参数始终为null。

这是您想要的映射:

"/loader/$er3f?" {
   action = [GET:"save"]
   controller = 'loader'
}