Primefaces InputTextarea 有条件地设置最大长度
Primefaces InputTextarea set maxlength conditionally
我想定义一个依赖于 Primefaces InputTextarea 的自己的文本区域组件。我只想在我的 textarea 组件中设置 p:inputTextarea
的最大长度。
我只想在 p:inputTextarea
组件上设置最大长度,前提是该属性可用。我试过以下:
<p:inputTextarea maxlength="#{maxlength not empty ? maxlength : null}"...>
如果设置了值,这会起作用,但是当没有设置时,primefaces 组件的值将设置为 0,因此无法进行输入。
我尝试过的另一种方法是按如下方式设置属性:
<c:if test="#{not empty maxlength}">
<f:attribute name="maxlength" value="#{maxlength}"/>
</c:if>
但这给了我一个例外,当设置了最大长度时:
ServletException: java.lang.String cannot be cast to java.lang.Integer
如何设置只有在我自己的组件中定义的属性?
我找到了解决方案,我应该在 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>
我想定义一个依赖于 Primefaces InputTextarea 的自己的文本区域组件。我只想在我的 textarea 组件中设置 p:inputTextarea
的最大长度。
我只想在 p:inputTextarea
组件上设置最大长度,前提是该属性可用。我试过以下:
<p:inputTextarea maxlength="#{maxlength not empty ? maxlength : null}"...>
如果设置了值,这会起作用,但是当没有设置时,primefaces 组件的值将设置为 0,因此无法进行输入。
我尝试过的另一种方法是按如下方式设置属性:
<c:if test="#{not empty maxlength}">
<f:attribute name="maxlength" value="#{maxlength}"/>
</c:if>
但这给了我一个例外,当设置了最大长度时:
ServletException: java.lang.String cannot be cast to java.lang.Integer
如何设置只有在我自己的组件中定义的属性?
我找到了解决方案,我应该在 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>