首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

亲善的开发框架-Asta4D(8):Content Provider与Request Handler Chain

2014-01-17 
友好的开发框架-Asta4D(8):Content Provider与Request Handler Chainrules.addGlobalForward(TemplateNotF

友好的开发框架-Asta4D(8):Content Provider与Request Handler Chain
rules.addGlobalForward(TemplateNotFoundException.class, "/pagenotfound.html", 404); rules.add("/app/handler").attribute("authcheck") .handler(LoginHandler.class) .forward(LoginFailure.class, "/templates/error.html") .forward("/templates/success.html");

?

?

首先,我们假设LoginHandler返回了一个LoginFailure的结果,根据forward的声明,LoginFailure结果会被变换成新的结果:字符串"/templates/error.html"。然后,对这个值,框架会再次调用变换规则,根据内置的规则,一个字符串值会被变换成一个Asta4DPageProvider,至此,完成了从request handler result到template文件的变换过程。

?

接下来,看一个更有趣的例子,假如"/templates/error.html"文件不存在会怎么样?如果该文件不存在,则在上述的第二次变换时,即将"/templates/error.html"变换成Asta4DPageProvider时,会抛出TemplateNotFoundException,而这个异常,同样被视作"/templates/error.html"的变换结果,从而导致变换规则被再次迭代,这一次,我们发现了一个全局的forward声明,于是,根据这个声明,TemplateNotFoundException被变换成"/pagenotfound.html",对于字符串值,再一次迭代,"/pagenotfound.html"最终被变换成一个Asta4DPageProvider,然后produce方法被调用,应答页面写入客户端。

?

?

?

最后,至本节止,对Asta4D框架的整体说明就全部结束了,接下来的内容,将会补充前面遗漏的一些细节并对某些内容做更深入的说明。

?

热点排行