使用Agavi进行MVC编程简介,第2部分 (二)
listing" --> <route name="listing" pattern="^/listing" module="Listing"> <route name=".display" pattern="^/display/(id:\d+)contentquot; action="Display" /> </route> </routes> </ae:configuration> </ae:configurations> 这个路由定义希望 id 变量被包含为 URL GET 请求的一部分,并通过在路由定义中使用捕捉组来表明。这个变量表示汽车列表的唯一标识符,与 MySQL数据库中的 listing.RecordID 主键字段对应。记住,您必须将这个变量添加到 DisplayAction 的验证器,这样它才能通过 Agavi 的输入验证过滤器。 这也是您见到的第一个嵌套路由例子。在嵌套路由定义中,内部路由继承与外部路由匹配的模式,然后可以进一步修改该模式。在实现 CRUD 功能时,这个特性提供了极大的便利,其中 URL 具有相同的基础部分和不同的后缀,如下所示:
使用以上的路由定义时,包含 /listing 模式的 URL 首先与外部路由进行匹配。然后,Agavi 检查剩余的模式,并根据模式包含的内容决定哪个子路由最匹配,并将请求指向该路由的操作。当然,以上的定义仅包含一个子路由,但不要着急,随后将添加更多的子路由。 步骤 3:定义验证规则 因为仅有一个输入变量被传递到 DisplayAction,所有验证非常简单 —— 只需使用一个AgaviNumberValidator(清单 16): 清单 16. Listing/DisplayAction 验证器
步骤 4:编写操作代码 处理了路由和验证之后,下一个步骤是为 DisplayAction 指定视图。因为 DisplayAction 将只处理 GET 请求,所以您必须指定一个与生成的视图同名的 executeRead() 方法。清单 17 显示了编写出的操作: 清单 17. Listing/DisplayAction 定义
步骤 5:编写视图代码 现在,您将进入这个小节的核心部分:设置 DisplaySuccessView 以显示汽车列表。清单 18 显示了编写出的视图: 清单 18. Listing/DisplaySuccessView 定义
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |