gpt4 book ai didi

JSF 复合组件 ID

转载 作者:行者123 更新时间:2023-12-04 17:40:45 25 4
gpt4 key购买 nike

我创建了一个 JSF 复合组件来扩展 h:inputBox

        <p class="label clear">
<label for="#{cc.attrs.id}" class="">
#{cc.attrs.label}:
</label>
</p>
<p>
<h:inputText id="#{cc.attrs.id}" value="#{cc.attrs.value}"
size="#{cc.attrs.size}" />
<ui:fragment rendered="#{cc.attrs.optional eq 'optional'}">
<span class="optional">Optional</span>
</ui:fragment>
</p>

要使用此组件..
<my:inputText id="firstName" label="First Name" value="#{nameTO.firstName}"/>

当此组件在浏览器上呈现时,ID 的格式为“firstName:firstName”。
<input type="text" value="" name="firstName:firstName" id="firstName:firstName" gtbfieldid="3028">

这是 JSF 2.0 模板的标准命名约定吗?我在 JSF 1.2 Facelets 模板中没有得到这个。
有什么方法可以将 ID 生成为“firstName”而不是“firstName:firstName”

最佳答案

JSF 2.0 复合组件与 JSF 1.x/2.x Facelets 模板不同。

复合组件也有自己的 ID。您基本上是在复合组件的实现中在组件上重用它。您可能需要考虑为实现中的组件添加或重命名另一个 ID 属性。例如。

<my:inputText name="firstName" label="First Name" value="#{nameTO.firstName}" />


<h:inputText id="#{cc.attrs.name}">

然而它最终会变成 id="ccId:firstName"在 HTML 中,其中 ccId是固定的或自动生成的 idmy:inputText .你也可以把它放在一边并使用
<h:inputText id="input">

最终为 id="firstName:input"在 HTML 中。

关于JSF 复合组件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4616291/

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