ICEfaces 2真的有效吗?
|
根据文档,它应该是世界上最容易使用的产品:
只需将icefaces.jar添加到应用程序中,我们就将Direct-to-Dom(D2D)渲染应用于页面。
但是,即使是他们最基本的教程《 ICEfaces 2入门》也似乎不起作用。我在页面底部下载了代码,将其内置到WAR中,并将其部署到Tomcat 6.0.32和Tomcat 7.0.14中。我注意到的第一件事是由于某种原因复合组件无法正常工作:
/job-applicant.xhtml @ 39,78以下属性是必需的,但没有提供任何值:id。
但这感觉上更像是一个JSF问题(JSF 2 Composite组件的required属性抛出异常),因此我通过删除ID属性上的required来解决了这一问题(尽管对于不符合条件的值仍然存在required =“ true”似乎有问题)。无论如何,现在该应用程序已部署。如前所述,当您单击“清除”按钮时,它将使用AJAX调用,最终会在响应XML中获得表单的完整DOM。下一步是添加icefaces.jar,并且应该添加Direct-to-DOM功能,以确保仅在响应中发送差异:
ICEfaces 2将组件标记呈现到反映当前客户端视图的服务器端DOM(文档对象模型)。每次JSF生命周期运行时,都会进行DOM比较,并且,如果有任何更改,则会将简洁的页面更新集发送回客户端以应用于页面。我们将此称为Direct-to-DOM或D2D渲染。
但是,我得到了完整的表格作为回应,加上一些其他的ICEfaces内容,例如:
<input name=\"ice.window\" type=\"hidden\" value=\"epgo74zmvc\" />
<input name=\"ice.view\" type=\"hidden\" value=\"vs4ik661\" />
很明显,ICEfaces正在做某事,但没有履行承诺。它实际上比普通的AJAX响应更长。因此,忽略了实际上是更大的响应这一事实,我继续进行下一个承诺:
使用Direct-to-DOM渲染,我们不再需要嵌套在“清除”按钮中的f:ajax标签
听起来很直接吧?在页面上的示例中,他们只是将侦听器的EL表达式从f:ajax标记移至h:commandButton标记。那里的问题是方法签名是不同的。这本应该是入门教程,但实际上并不指导您完成所有步骤。无论如何,我可以通过修改后备bean中的clearForm方法的方法签名使其现在的参数为ActionEvent而不是AjaxBehaviorEvent来解决此问题。这样做,ICEfaces实际上确实用AJAX动作代替了整页动作,这是令人难以置信的,但是我的口中仍然有酸味。有谁知道为什么D2D似乎不起作用?难道我做错了什么?我是否仍应尝试使用ICEfaces?
没有找到相关结果
已邀请:
2 个回复
骨酚柯
搁手