gpt4 book ai didi

html - 将 JSF HTML5 友好标记与其他组件库一起使用

转载 作者:可可西里 更新时间:2023-11-01 13:30:54 25 4
gpt4 key购买 nike

从JSF2.2开始,可以用HTML5写更多的元素:写<button>可以等同于写<h:commandButton> .

但这如何与其他组件库一起工作?是否可以覆盖该行为并让 <button>被转换为来自默认/标准库以外的某个库的组件(例如来自 primefaces 的 <p:commandButton>)?

从文档中,我可以看到 TagDecorator是必需的,但我在 primefaces 中看不到任何内容。是因为 primefaces(还)没有实现该功能,还是因为 JSF HTML5 友好标记只能生成标准组件(http://xmlns.jcp.org/jsf/html)?

最佳答案

正如您在链接到的 TagDecorator 页面上看到的那样,“html5 友好”标记仅与“基本”输入、按钮和链接相关。 PrimeFaces 有一些与这些相对应的东西,但如果您仔细观察这种“html5 友好”符号的真正优势,它主要是在设计部分。为什么..

看看这 3 个例子:

  1. <input type="number" jsf:value="#{bean.value}"/>
  2. <p:inputText type="number" value="#{bean.value}"/>
  3. <h:inputText type="number" value="#{bean.value}"/> ( http://balusc.blogspot.com.au/2012/06/adding-html5-attributes-to-standard-jsf.html )

第一个是 html(5) 友好的。但是 2 和 3 在客户端上有效呈现的内容取决于(在本例中)渲染器的共享实现(如 tagDecorator 页面中所示)。 1 呈现的内容取决于 PrimeFaces 的作用。他们都可以渲染 <input type="number".../>在客户端,但它们也可以渲染更复杂的东西(就像 PrimeFaces 现在所做的那样)。

那么这款妆容有什么优势呢?在我看来,这是对所有 Javascript 框架和其他一些组件框架(如 Tapestry)所提倡的“反作用”。您可以使用纯 html 进行页面设计。在我看来,这只有有限的优势。许多相关的 ui 组件类型,如数据表、树、菜单、选项卡等,需要大量的 javascript 才能工作,将类添加到纯 html 等等,以接近页面最终的样子,因此它们看起来不太好在设计师中,因为所有这些 css 和东西都丢失了。顺便说一句,对于复杂的 jsf 组件也是如此,它们在设计器中渲染效果不佳,您仍然需要它们的 jsf“标签”。所以最后,你会将纯 html 标签与它们的符号和“普通”jsf 混合使用,这是我尝试过但不喜欢的组合(一致性很好)

所以总而言之,我认为 PF 没有添加 TagHandlers 来支持他们的框架中的这种表示法并不奇怪。我宁愿他们花时间和精力进一步改进他们的组件。

关于html - 将 JSF HTML5 友好标记与其他组件库一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com