现在我已经读过这几次:一些开发商并不在他们的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,头部,身体等标签。
任何人都可以请清除此为我?
在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仍在使用,为什么
作为一般规则,我用在布局/模板页面的混合betweek HTML和Facelets标记。 但对于实际内容的网页我尽量只使用可用的JSF标签与选择(JSF + RichFaces的)我的JSF库。
这样我可以有更多的控制哪些元素来显示和隐藏,以及每个元素中的内容,但我仍然可以在Facelets模板文件硬编码我的主要版面。
文章来源: JSF/Facelets: why is it not a good idea to mix JSF/Facelets with HTML tags?