使用Agavi进行MVC编程简介,第1部分:使用Agavi开辟一个新世界
gt; </validators> </ae:configuration> </ae:configurations> 非常简单!这个 XML 块为page变量设置一个 AgaviRegexValidator,并且检查它是否匹配在验证器定义中指定的正则表达式。 受到步骤2和3的影响,当传递 URL /content/hello 时,Agavi的路由和验证子系统将自动检查该 URL,初始化一个名为page的AgaviRequestDataHolder变量,并且将值 hello 赋给它。 步骤4:编写操作代码 那么,为什么要捕捉 URL的特定部分呢?这是一个好问题,并且答案将慢慢明晰。现在,我们继续设置StaticContentAction,您可以在$WASP_ROOT/app/modules/Default/actions/StaticContentAction.class.php 中找到它。编辑这个文件使其包含清单14 中的代码: 清单14. Default/StaticContent View定义
如前所述,Agavi 要求显式地指定用于处理不同类型请求的视图。例如,executeRead()方法指定如何处理 GET请求,而executeWrite()方法指定如何处理 POST请求。在这个例子中,因为StaticContentAction 仅处理 GET请求,所以它必须包含一个 executeRead()方法,并且这个方法应该引用StaticContentSuccessView。 需要注意的是,仅当前面提到的输入验证测试成功时,才会调用Success View。如果输入验证测试失败,Agavi的默认行为是生成 Error View。 步骤5:编写视图代码 现在我们转向这个部分的重点:设置StaticContentSuccessView以提供静态页面。在$WASP_ROOT/app/modules/Default/views/StaticContentSuccessView.class.php 打开视图文件,然后用清单15 中的代码填充它。 清单15. Default/StaticContentSuccess View定义
这看起来可能比较复杂,但实际并不复杂。一般而言,这个视图尝试将该 URL请求与一个静态页面模板匹配,如果可用就显示它。首先,视图的executeHtml()方法使用AgaviRequestDataHolder 对象的getParameter()方法获取前几个步骤中由路由子系统设置的page变量。然后,它根据一个预定义的文件命名约定重新格式化这个值,并且尝试查找并显示具有相同名称的模板文件。 例如,如果客户端请求的URL 为/content/hello-world,那么对$rd->getParameter(''page'')的调用将返回值 hello-world,并且视图将查找一个名为$WASP_ROOT/StaticContentHelloWorld.php的模板。如果该模板文件存在,视图将把它发送给客户端;如果不存在,将自动转到Agavi的默认 Error404 视图,向客户端显示 “Page not fou |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |