Java 我应该使用Facelets吗;jsfc“;属性
Facelets使用jsfc属性将HTML元素转换为关联的JSF组件。这对于快速原型设计非常有用,因为它允许您使用可视化设计工具创建视图。然而,我最近发现了Cay Horstmann的一篇博文,他在这篇博文中浪费了jsfc以及h:dataTable等复杂组件的使用Java 我应该使用Facelets吗;jsfc“;属性,java,jsf,facelets,Java,Jsf,Facelets,Facelets使用jsfc属性将HTML元素转换为关联的JSF组件。这对于快速原型设计非常有用,因为它允许您使用可视化设计工具创建视图。然而,我最近发现了Cay Horstmann的一篇博文,他在这篇博文中浪费了jsfc以及h:dataTable等复杂组件的使用 这让我感到震惊,因为Cay Horstmann是我最喜欢的多本Java书籍的作者。然而,在试图确定问题的范围/性质时,我的Google fu技能没有产生任何结果,除了who最近发布的一篇文章,他喜欢JSF(而且他毕竟是JSF的联合规范
这让我感到震惊,因为Cay Horstmann是我最喜欢的多本Java书籍的作者。然而,在试图确定问题的范围/性质时,我的Google fu技能没有产生任何结果,除了who最近发布的一篇文章,他喜欢JSF(而且他毕竟是JSF的联合规范负责人)。所以我的问题很简单,是否建议对facelet使用jsfc?如果不是的话,它带来了什么问题 正如您所说,
jsfc
属性在您必须将HTML原型“转换”为JSF页面时基本上是有用的。例如,当您有HTML输入文本时:
<input type="text" .../>
这相当于编写以下JSF代码:
<h:inputText .../>
还可以使用此属性创建表:
<table>
<tr jsfc="ui:repeat" value="#{dept.employees}" var="emp" class="#{emp.manager ? 'mngr' : 'peon'}">
<td>#{emp.lastName}</td>
<td>#{emp.firstName}</td>
</tr>
</table>
#{emp.lastName}
#{emp.firstName}
在本例中,我们没有将该表链接到h:datatable
组件,而是使用JSF组件ui:repeat
在行上迭代,用HTML代码创建一个表
如您所见,jsfc
属性可用于在JSF页面中将一个HTML组件转换为一个JSF组件。因此,对于复杂的组件,例如datatable,您必须使用一些变通方法(使用ui:repeat
而不是h:datatable
组件)
另一点是,您将无法使用第三个库组件,例如RichFaces、IceFaces、Tomahawk等提出的组件。这些库确实是JSF的兴趣之一
总之:
jsfc
可用于将HTML原型转换为JSF应用程序,主要用于创建概念证明或设计通用UI。但是,我认为最好在“真正的”开发开始后避免使用此组件…好吧。。。事实上,我刚刚用第三方组件测试了jsfc属性,它工作正常。。。
<span jsfc="ui:remove">
This won't be compiled either <h:outputText value="#{foo.bar}"/>
</span>
<table>
<tr jsfc="ui:repeat" value="#{dept.employees}" var="emp" class="#{emp.manager ? 'mngr' : 'peon'}">
<td>#{emp.lastName}</td>
<td>#{emp.firstName}</td>
</tr>
</table>