JSF / Facelets的:它为什么不是一个好主意,JSF / Facelets的HTML标记混

2019-05-12 02:17发布

现在我已经读过这几次:一些开发商并不在他们的XHTML文件交织HTML标记JSF / Facelets标记的倡导者。 显然,HTML标记不会UI组件树的一部分,但什么是的是的缺点?

我经常发现的代码示例,其中,作者做这种混合的:

http://www.ibm.com/developerworks/java/library/j-facelets/

http://www.packtpub.com/article/facelets-components-in-jsf-1.2

http://oreilly.com/catalog/9780596529246

“缝在行动”也交织JSF / Facelets的和HTML标记。

我感到困惑的实际使用什么。 我开始了混合标签,但我开始相信这是可能不是正确的选择。 不过,我看不出为什么纯粹主义做法是preferrable。

我肯定知道我有一个表,其中JSF数据表不给我足够的灵活性,以显示我需要,所以做puristically是不可能的。

此外,我想知道为什么没有以上使用f例子:查看等来代替硬编码的HTML,头部,身体等标签。

任何人都可以请清除此为我?

Answer 1:

在JSF 1.0 / 1.1时代这确实是“不是一个好主意”,因为所有的HTML没有自动在JSF组件树使用JSP作为视图技术时服用。 所有纯HTML是热切的JSF组件树之前渲染JSP。 例如

<p>Lorem ipsum <h:outputText value="#{bean.value1}"> dolor sit amet<p>
<p>Consectetur adipiscing <h:inputText value="#{bean.value2}" /> elit</p>

得到了呈现为

<p>Lorem ipsum dolor sit amet<p>
<p>Consectetur adipiscing elit</p>

value1
<input type="text" value="value2" />

为了解决这个问题,你需要把<f:verbatim>英寸

<f:verbatim><p>Lorem ipsum </f:verbatim><h:outputText value="#{bean.value1}"><f:verbatim> dolor sit amet<p></f:verbatim>
<f:verbatim><p>Consectetur adipiscing </f:verbatim><h:inputText value="#{bean.value2}" /><f:verbatim> elit</p></f:verbatim>

这是一个真正的维修疼痛。 这是主要的原因,JSF 1.0 / 1.1是如此恨一个。

由于JSF 1.2,与新的视图的处理程序,所述<f:verbatim>没有必要了。 开发人员现在可以松一口气放心。 此外,新的视图处理程序允许JSF使用不同的视图技术比JSP和这样的Facelets诞生了。

也可以看看:

  • 什么是Java服务器的主要缺点面临2.0吗?
  • 为什么Facelets的优于JSP从JSF2.0开始视图定义语言?
  • 是否有可能使用JSF + Facelets的使用HTML 4/5?
  • JavaServer Faces的2.2和HTML5的支持,是XHTML仍在使用,为什么


Answer 2:

作为一般规则,我用在布局/模板页面的混合betweek HTML和Facelets标记。 但对于实际内容的网页我尽量只使用可用的JSF标签与选择(JSF + RichFaces的)我的JSF库。

这样我可以有更多的控制哪些元素来显示和隐藏,以及每个元素中的内容,但我仍然可以在Facelets模板文件硬编码我的主要版面。



文章来源: JSF/Facelets: why is it not a good idea to mix JSF/Facelets with HTML tags?