我只是对这两个类之间的区别有疑问:


org.ajax4jsf.taglib.html.jsp.AjaxCommandButton
org.ajax4jsf.component.html.HtmlAjaxCommandButton


我实际上是在使用HtmlAjaxCommandButton动态创建Ajax命令按钮,并且效果很好,但是当使用其他类org.ajax4jsf.taglib.html.jsp.AjaxCommandButton时,它似乎还有另一个用途!我只想清理一下!

它们之间有什么区别?那我们什么时候应该使用这个而不是另一个呢?

最佳答案

taglib包中的一个是UIComponentTag的子类,因此代表唯一的JSP标记<a4j:commandButton>。它基本上定义了所有可用的属性。 component包中的一个是UIComponent的子类,因此代表与JSP标记关联的具体JSF组件。 JSF组件通过渲染器定义解码(回发处理)和编码(HTML渲染)行为。 JSP标记基本上是JSF组件树和JSP文件之间的“中介”。

动态创建JSF组件时,不应手动创建JSP标记。它们不应以JSF组件树结尾。

请注意,作为JSP的后继者,Facelets不再需要这些UIComponentTag类。它们在Facelets中完全不存在。

10-06 13:35
查看更多