2017-10-24 23 views
0

Primefaces InputTextareaに依存する独自のテキストエリアコンポーネントを定義します。私はmaxleghtをp:inputTextareaに設定したいのは、自分のtextareaコンポーネントで設定されているときだけです。Primefaces InputTextareaは条件付きでmaxlengthを設定します

p:inputTextareaコンポーネントのmaxlengthは、その属性が使用可能な場合にのみ設定したいと考えています。私は、次の試み:

<p:inputTextarea maxlength="#{maxlength not empty ? maxlength : null}"...> 

入力が可能でないように、値が設定され、それが設定されていない場合、primefaces成分の値が0に設定されている場合、これは動作します。

私が試したもう一つの方法は、次のように属性を設定することです:

<c:if test="#{not empty maxlength}"> 
    <f:attribute name="maxlength" value="#{maxlength}"/> 
</c:if> 

しかし、これは私にMAXLENGTHが設定されている例外与える:

ServletExceptionが:java.langのを。文字列をjava.lang.Integerにキャストすることはできません

属性は自分のコンポーネントで定義されている場合にのみ設定できますか?

答えて

1

私はinputTextarea周りc:ifを使用する必要があること、解決策を見つけた:

<c:if test="#{not empty maxlength}"> 
    <p:inputTextarea maxlength="#{maxlength not empty ? maxlength : null}" ...> 
</c:if> 

<c:if test="#{empty maxlength}"> 
    <p:inputTextarea ...> 
</c:if> 
関連する問題