2

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

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

我实际上是HtmlAjaxCommandButton用来动态创建 Ajax 命令按钮的,它工作正常,但是当使用另一个类时org.ajax4jsf.taglib.html.jsp.AjaxCommandButton,它似乎有另一个目的!我只是想把事情弄清楚!

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

4

1 回答 1

1

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

动态创建 JSF 组件时,不应手动创建 JSP 标记。它们不应该出现在 JSF 组件树中。

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

于 2013-01-09T16:59:02.337 回答