我最近开始使用带有Facelets的JSF 2.0,并且对于了解<ui:include>Facelets 1.x提供的现有和其他模板技术的新复合组件感到困惑.
这些方法有什么区别?从功能上看,它们似乎提供了相同的:<ui:param>vs <cc:attribute>,<ui:insert>+ <ui:define>vs标记文件,重用现有模板.除了复合组件的语法和清晰的接口规范之外还有什么吗?性能会有所不同?
首先,我是Java EE的新手,来自强大的ASP .NET开发背景.我已经浏览了网络,我可能会错过这个,但似乎没有关于如何将支持bean类连接到JSF组件的简单直接的教程.
一个很好的例子是这样的,目前我正在尝试创建一个JSF页面,其中有一组链接作为菜单栏和一组表单.我打算做的是,当点击一个链接时,将呈现一个特定的表单.
在ASP.NET中,我可以轻松检索元素,然后将属性设置为可显示.我想知道在JSF中是否有简单的方法(哎呀,甚至任何方式).
表单已经在页面中,只需在单击特定链接时将"render"属性设置为true即可.
我有三个值,我希望在前两个值的情况下渲染一个组件,为第三个值渲染另一个组件
下面,我有我的页面:
<ui:repeat value=#{bean.value} var="data">
<c:choose>
<c:when test="#{data.thirdValue == 'content'}">
<h:outputText value="Wrong value"/>
</c:when>
<c:otherwise>
Correct!
</c:otherwise>
</c:choose>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)
这就是我的页面定义方式.我还添加了以下命名空间:xmlns:c="http://java.sun.com/jsp/jstl/core.
我测试了测试中定义的值是否<c:when>返回"true"或"false"并且确实如此.
我的问题是<c:when>永远不会评估.<c:otherwise>始终呈现该值.我错过了什么吗?是否因为条件渲染在内部<ui:repeat>而没有评估when?
任何帮助将非常感谢.提前致谢