使用客户端 ID 引用组件与使用 p:component 之间的区别
Difference between referencing component with client ID and using p:component
我目前正在更改我的一个基于 primefaces 6.1 的项目的核心子视图的结构以进行概念验证,并找到了很多参考资料,例如 X:Y:Z:A、X:Y:Z:B 等...在将引用的组件移动到树的其他位置后显然失败了,所以我的解决方案是将 "long id path" 替换为 p:component('A') 等等。几次替换后,我想到了一些问题:"Why didn't they just use p:component()?"、"Were them intentionally referred this way...if so why?"。最后是最重要的 - 这个。使用其 ID 及其祖先(如 X:Y:Z:A 和使用 p:component('A') 调用组件之间有什么区别吗?
同时考虑以下情况... p:component('x') return 会怎样?会不会有任何碰撞或歧义异常?
<f:view>
<h:outputText id="x" />
<h:form id="form1">
<h:outputText id="x" />
</h:form>
</f:view>
提前致谢
一些事情...
p:component 找到它能找到的 "first" 参考并 returns 它所以我相信它会找到第一个 h:outputText.
p:component 已被弃用,并且已从即将发布的 PF 7.1 版本中删除,您可以在此处的迁移指南注释中看到:https://github.com/primefaces/primefaces/wiki/Migration-Guide
所以要回答你最好直接用 :form1:x
引用它,或者如果你想要 p:component 找到第一个的行为,你可以使用 PFS 选择器框架 @root:@id(x)
查看示例这里:https://www.primefaces.org/showcase/ui/ajax/selector.xhtml
我目前正在更改我的一个基于 primefaces 6.1 的项目的核心子视图的结构以进行概念验证,并找到了很多参考资料,例如 X:Y:Z:A、X:Y:Z:B 等...在将引用的组件移动到树的其他位置后显然失败了,所以我的解决方案是将 "long id path" 替换为 p:component('A') 等等。几次替换后,我想到了一些问题:"Why didn't they just use p:component()?"、"Were them intentionally referred this way...if so why?"。最后是最重要的 - 这个。使用其 ID 及其祖先(如 X:Y:Z:A 和使用 p:component('A') 调用组件之间有什么区别吗?
同时考虑以下情况... p:component('x') return 会怎样?会不会有任何碰撞或歧义异常?
<f:view>
<h:outputText id="x" />
<h:form id="form1">
<h:outputText id="x" />
</h:form>
</f:view>
提前致谢
一些事情...
p:component 找到它能找到的 "first" 参考并 returns 它所以我相信它会找到第一个 h:outputText.
p:component 已被弃用,并且已从即将发布的 PF 7.1 版本中删除,您可以在此处的迁移指南注释中看到:https://github.com/primefaces/primefaces/wiki/Migration-Guide
所以要回答你最好直接用 :form1:x
引用它,或者如果你想要 p:component 找到第一个的行为,你可以使用 PFS 选择器框架 @root:@id(x)
查看示例这里:https://www.primefaces.org/showcase/ui/ajax/selector.xhtml