WEB开发网
开发学院软件开发Java 精通 Grails: 用定制 URI 和 codec 优化 Grails 中... 阅读

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

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 按作者过滤的功能就绪后,就可以更进一步,精通 Grails: 用定制 URI 和 codec 优化 Grails 中的 URI(8),创建一个更为友好的定制 URI,创建一个定制 URIUrlMappings.groovy 文件为创建新的 URI 提供了额外的灵活性,不错,目前尚没有任何的验证规

按作者过滤的功能就绪后,就可以更进一步,创建一个更为友好的定制 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。

创建一个定制 codec

在使用 User.login 而非 User.id 时,URI 很简单,因为它不包含空白。不错,目前尚没有任何的验证规则强制这种 “无空白” 的要求,但我们可以很轻松地添加一个这样的规则来强制 URI 遵从这一要求。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:精通 Grails 定制

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接