Je suis actuellement dans un projet de création de formulaire dynamique, utilisant Primefaces 8.0 et Primefaces Extension 8.0. Je veux faire une validation de longueur dans la saisie de l'utilisateur pour le numéro de téléphone avec une longueur minimum et maximum en utilisant f:validateLength, mais d'une manière ou d'une autre la validation échoue toujours en disant que la longueur est plus grande que celle autorisée même si j'ai fixé le maximum à 10 et que j'ai juste entré 1 caractère. Voici mon code
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>
TestMBean :
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");
DynamicModel :
@Getter
@Setter
@ToString
public class DynamicModel implements Serializable {
private String labelEn;
private Object value;
private Integer minLength;
private Integer maxLength;
}
Il est dit que la valeur maximale autorisée est 0 mais comme vous pouvez le voir, j'affiche les valeurs de minLength et maxLength et il apparaît que la minLength est 0 et la maxLength est 10. J'ai donc vérifié la source et j'ai obtenu ceci :
Est-ce que je fais quelque chose de mal ? Quelqu'un peut-il m'indiquer où je me suis trompé ? Merci.