gpt4 book ai didi

java - JSF 2.0 通过 EL 检查组件在复合组件中是否有效

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:13 25 4
gpt4 key购买 nike

有一个我想在我的 JSF 复合组件中实现的示例:

<h:inputText id="name" value="#{cc.attrs.value.name}" styleClass="#{(component.valid) ? 'required' : 'required invalid'}" validatorMessage="bad name" requiredMessage="name required" immediate="true" required="true">
<f:validateRegex pattern="^[\p{L}' ]{2,19}$" />
<f:ajax event="blur" execute="name" render="name testPanel" immediate="true"/>
</h:inputText>

<h:inputText id="surname" value="#{cc.attrs.value.surname}" styleClass="#{(component.valid) ? 'required' : 'required invalid'}" validatorMessage="bad surname" requiredMessage="surname required" immediate="true" required="true">
<f:validateRegex pattern="^[\p{L}' ]{2,19}$" />
<f:ajax event="blur" execute="name" render="surname testPanel" immediate="true"/>
</h:inputText>

<h:panelGroup id="testPanel" styleClass="#{(!name.valid || !surname.valid) ? 'warning' : 'none'}">
<h:message id="msgName" for="name" showSummary="true" showDetail="false" />
<h:message id="msgSurname" for="surname" showSummary="true" showDetail="false" />
</h:panelGroup>

问题是如何评估名称或姓氏在“测试面板”中是否有效。我希望消息“msgName”和“msgSurname”都用样式化的跨度(html 输出)包装,如果没有“name”或“surname”的错误消息,它们将不存在。

感谢任何帮助:)

最佳答案

使用 binding 属性将组件绑定(bind)到 EL 作用域:

<h:inputText binding="#{name}" ... />
<h:inputText binding="#{surname}" ... />

这样,您在 styleClass 属性中的 EL 尝试就会起作用。

关于java - JSF 2.0 通过 EL 检查组件在复合组件中是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11500209/

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