jsf - Primefaces Dynaform 奇怪的行为与 f :validateLength

我目前正在使用 Primefaces 8.0 和 Primefaces Extension 8.0 创建动态表单。我想使用 f:validateLength 在用户输入的最小和最大长度的电话号码中进行长度验证,但不知何故验证总是失败,说长度大于允许的长度,即使我将最大值设置为 10 并且我只输入了 1 个字符。这是我的代码

xhtml:

<h:form prependId="false">
            <p:messages/>
            <pe:dynaForm id="df" 
                         value="#{testMBean.modelz}" var="data" 
                         class="ui-fluid" style="width: 100%;" varContainerId="dfid">
                <pe:dynaFormControl id="dfc-text" type="Text" style="white-space: normal;">
                    <p:panelGrid id="pg-txt" columns="3" layout="grid" class="no-padding no-border"
                                 styleClass="ui-panelgrid-blank form-group"
                                 columnClasses="ui-grid-col-4,ui-grid-col-8,ui-grid-col-2">
                        <p:outputLabel for="@next" 
                                       value="#{data.labelEn}"/>
                        <p:inputText id="txt" value="#{data.value}" required="false">
                            <f:validateLength for="@previous" minimum="#{data.minLength}" maximum="#{data.maxLength}"/>
                        </p:inputText>
                        <p:outputLabel value="#{data.minLength} - #{data.maxLength}"/>
                    </p:panelGrid>
                </pe:dynaFormControl>
            </pe:dynaForm>
            <p:commandButton process="@form" update="@form"/>
</h:form>

测试MBean:

private DynaFormModel modelz;

modelz = new DynaFormModel();
DynaFormRow row = modelz.createRegularRow();
DynamicModel dm = new DynamicModel();
dm.setMinLength(0);
dm.setMaxLength(10);
dm.setLabelEn("Test");
row.addControl(dm, "Text");
dm = new DynamicModel();
dm.setMinLength(1);
dm.setMaxLength(20);
dm.setLabelEn("Test2");
row.addControl(dm, "Text");

动态模型:

@Getter
@Setter
@ToString
public class DynamicModel implements Serializable {
    private String labelEn;
    private Object value;
    private Integer minLength;
    private Integer maxLength;
}

结果:

据说最大允许值为 0,但如您所见,我显示了 minLength 和 maxLength 的值,它显示 minLength 为 0,maxLength 为 10。所以我检查了源并得到了这个:

我做错了什么吗?谁能指出我哪里做错了。 谢谢。

相关文章:

azure - 雪花 - Azure 事件目录集成

python - 如何将 tkinter 事件用于 'continue' 或暂停不同的 while

vue.js - 如何使用 vue-router 处理错误

oracle - 如何使用 UTF8 作为国家字符集在 docker 中创建 Oracle 数据库?

python - 比较两个列表,如果相等则替换第三个列表中的值

typescript - TypeScript 中任意数量类型的非析取联合

python-3.x - 无法在 Python 3.8 上运行 Supervisor

https - create-react-app:如何使用 https 但带有签名证书?

java - Bootstrap 类路径未与 -source 8 一起设置

selenium - AWS Lambda 中的 Chrome Headless 返回空白页面