3

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>

問題は、名前または姓が「testPanel」で有効/無効であるかどうかを評価する方法です。メッセージ 'msgName' と 'msgSurname' の両方を、'name' または 'surname' のエラー メッセージがない場合に存在しないスタイル付きスパン (html 出力) でラップする必要があります。

どんな助けでも感謝します:)

4

1 に答える 1

5

binding属性を使用して、コンポーネントを EL スコープにバインドします。

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

styleClassこのようにして、属性での EL の試みが機能します。

于 2012-07-16T14:13:17.887 に答える