Lar*_*ann 30 java jsf facelets
Facelets使用jsfc属性将HTML元素转换为其关联的JSF组件.这对于快速原型设计非常有用,因为它允许您使用可视化设计工具创建视图.然而,我最近发现了Cay Horstmann的这篇博客文章,他将jsfc与复杂组件(如h:dataTable)的使用浪费在一起.
这让我感到震惊,因为Cay Horstmann是我最喜欢的多本Java书籍的作者.然而,在尝试确定问题的范围/性质时,我的Google-fu技能已经取得了零结果,除了Ed Burns最近的帖子,他接近喜欢jsfc(并且他是JSF的所有联合规范领导者) .所以我的问题很简单,是否建议将jsfc与Facelets 一起使用?如果不是它引入的问题是什么.
Rom*_*las 35
正如您所说,jsfc当您必须将HTML原型"转换"为JSF页面时,该属性基本上是有用的.例如,当您有HTML输入文本时:
<input type="text" .../>
Run Code Online (Sandbox Code Playgroud)
您可以添加该jsfc属性以将此HTML组件转换为JSF组件:
<input type="text" jsfc="h:inputText" .../>
Run Code Online (Sandbox Code Playgroud)
这相当于编写以下JSF代码:
<h:inputText .../>
Run Code Online (Sandbox Code Playgroud)
如此处或此处的Facelets文档中所述,该属性jsfc还可用于"映射"Facelets组件.例如,您可以删除部分HTML代码:
<span jsfc="ui:remove">
This won't be compiled either <h:outputText value="#{foo.bar}"/>
</span>
Run Code Online (Sandbox Code Playgroud)
您还可以使用此属性创建表:
<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>
Run Code Online (Sandbox Code Playgroud)
在此示例中,我们不将此表链接到h:datatable组件,但我们使用JSF组件创建一个包含HTML代码的表ui:repeat来迭代行.
如您所见,该jsfc属性可用于将一个HTML组件转换为JSF页面中的一个JSF组件.因此,对于复杂的组件,例如数据表,您将不得不使用一些变通方法(使用ui:repeat而不是h:datatable组件).
另一点是,您将无法使用第三库组件,例如RichFaces,IceFaces,Tomahawk等提议的组件.这些库实际上是JSF的兴趣之一.
总而言之:jsfc将HTML原型转换为JSF应用程序非常有用,主要用于创建概念证明或设计通用UI.但是,一旦"真正的"开发开始,我认为最好避免使用这个组件...
| 归档时间: |
|
| 查看次数: |
11583 次 |
| 最近记录: |