1

Primefaces 2.2.1を使用しf:validatorLengthていますが、データテーブルの1行に設定し、多くの行に。を付けたいと考えていますp:cellEditor

<c:set var="flag" value="#{item.key eq 'someKey'}" />
<p:column headerText="header">
    <p:cellEditor>
       <f:facet name="output">
        <h:outputText value="#{item.value}" />
            </f:facet>
               <f:facet name="input">
                <p:inputText value="#{item.value}" style="width:100%" >
    <f:validateLength maximum="4" disabled="#{flag}"/>
                </p:inputText>

                </f:facet>
    </p:cellEditor>
</p:column>

また、適切なキーを使用して選択したinputTextに対してフラグがtrue設定されている場合、すべてのinputTextに対してバリデーターがオンになります。また、フラグがfalse-バリデーターの場合、すべてのinputTextに対してオンになります。しかし、バリデーターをいくつかのinputTextsなどに設定したいと思います。何か案は?ありがとう。

4

1 に答える 1

2

これは既知の問題です。タグの属性は、<f:validateXxx>ビューのビルド時に評価されます。したがって、ビューのレンダリング時にのみ使用できる変数に依存することはできません。

これは基本的に、ここで概説して詳細に回答したのと同じ問題です。データテーブルの各行にコンバーターのプロパティを設定するにはどうすればよいですか。

特定のケースでは、メソッド#{item}内でプログラムで評価するバリデーターを自分で作成する以外に、すべての属性のレンダリング時評価を可能にするOmniFacesを使用できます。validate() <o:validator>

<p:inputText value="#{item.value}">
    <o:validator validatorId="javax.faces.Length" maximum="4" disabled="#{flag}" />
</p:inputText>
于 2012-11-22T13:55:45.320 に答える