gpt4 book ai didi

jsf - 为什么要在 jsf 表单中添加 ID ="false"?

转载 作者:行者123 更新时间:2023-12-03 08:54:14 24 4
gpt4 key购买 nike

我知道prependId="false"做。它设置了标志,以便表单的 id 不会在表单子(monad)的 id 前面,但是为什么呢?您为什么要或不想添加 id 的任何特殊原因?

最佳答案

根据我的经验,我从不使用此属性。但是,在某些情况下它可能很有用。

使用 Facelets 时,您可以创建模板或将页面包含在另一个页面中。所以你可以想象一个页面可以包含在几个不同的页面中。以父页面包含 form 的示例为例。 ,具有不同的 id:

第 1 页:

<h:form id="form1">
<ui:include src="pages/my-page.xhtml"/>
...
</h:form>

第2页:
<h:form id="form2">
<ui:include src="pages/my-page.xhtml"/>
...
</h:form>

现在,在 my-page.xhtml , 你有一个 <h:inputText id="foo"/> .在第一种情况下,输入的真实 ID 将是 form1:foo ,而在第二种情况下,它将是 form2:foo .如果您需要在 Javascript 或 Java 中直接访问该组件(使用 findComponent("...") 方法),这可能会产生复杂的情况。

如果您使用 prependId="false" (或在某些组件上 forceId="true" ),真实 ID 将只是 foo ,然后您的代码将更简单,因为您不必关心输入字段的容器。

但是,您必须谨慎使用此属性,因为如果您使用此 prepend,您可能会收到重复 ID 错误。属性太频繁...

在现代 jsf 版本中,它也可能会破坏 ajax,请参阅 UIForm with prependId="false" breaks <f:ajax render>

关于jsf - 为什么要在 jsf 表单中添加 ID ="false"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3972653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com