技术开发 频道

精通 Grails:用定制URI和codec优化Grails中的URI

  创建一个定制 URI

  UrlMappings.groovy 文件为创建新的 URI 提供了额外的灵活性。虽然 http://localhost:9090/blogito/entry/list/jsmith 已经可以发挥作用,但是假设,最新出现的用户请求要求支持 http://localhost:9090/blogito/blog/jsmith 这样的 URI,又该如何呢?没问题!如清单 9 所示那样向 UrlMappings.groovy 添加一个新的映射:

  清单 9. 向 UrlMappings.groovy 添加一个新的定制映射

class UrlMappings {
    static mappings
= {
      
"/$controller/$action?/$id?"{
          constraints {
            
// apply constraints here
          }
      }
      
"/"(controller:"entry")
      
"/blog/$id"(controller:"entry", action="list")
      
"500"(view:'/error')
    }
}

  现在,以 /blog 开头的那些 URI 都将会被重新定向到条目控制器和列表动作。虽然 $user 或 $login 的描述性可能更好,但是让 $id 与 Grails 约定保持一致就意味着 "/$controller/$action?/$id?" 和 "/blog/$id"(controller:"entry", action="list") 二者能够指向同一个端点。

  在 Web 浏览器内键入 http://localhost:9090/blogito/blog/jsmith 以验证此映射能够工作。

  处理好 Users 之后,就可以集中精力为 Entries 创建更友好的 URI。

0
相关文章