我最近开始使用带有Facelets的JSF 2.0,并且对于了解<ui:include>Facelets 1.x提供的现有和其他模板技术的新复合组件感到困惑.
这些方法有什么区别?从功能上看,它们似乎提供了相同的:<ui:param>vs <cc:attribute>,<ui:insert>+ <ui:define>vs标记文件,重用现有模板.除了复合组件的语法和清晰的接口规范之外还有什么吗?性能会有所不同?
是否可以更新我的页面中不是JSF组件的部分?
例如,我可以更新纯HTML,<div>还是需要将其包装在JSF组件中?
我有以下UI Primefaces片段:
<pou:growl id="growl"
redisplay="false"
showDetail="false"
sticky="false" />
Run Code Online (Sandbox Code Playgroud)
当我尝试更新此项时,例如:
<pou:commandButton value="Update"
update=":growl"/>
Run Code Online (Sandbox Code Playgroud)
一切正常.
当我将咆哮移动到复合组件然后尝试调用它时(即像这样):
<ez:growl/>
Run Code Online (Sandbox Code Playgroud)
我得到一个错误消息说:
javax.faces.FacesException: Cannot find component with identifier ":growl" referenced from "j_idt84:j_idt85:testForm:j_idt111".
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么要添加所有这些自动生成的名称以及如何控制它们以便我可以实际访问要更新的组件?