Problème après un ValidatorException dans un process partial
Bonjour,
Après une validation de champ, lorsque la condition n'est pas réalisée et que je retourne un ValidatorException, il ne se passe plus rien lorsque je click à nouveau sur mes composants.
J'ai fait des tests en utilisant des validateurs personnalisé ou ceux de jsf (<f:validateRegex> par exemple) mais rien n'y change.
Je précise que je suis en partial process.
Ci dessous mon code ou j'ai laissé les 2 cas de validation
Merci d'avance pour votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <p:dialog header="#{labels['nonOk.forceFeasibility']}" widgetVar="popupForceFeasibility" resizable="true" width="800" height="700" dynamic="true">
<h:form id="popupForceFeasibilityId">
<p:messages id="forceFeaMsg" showDetail="true" autoUpdate="true" />
....
<p:column style="width: 40%;text-align:left">
<p:inputText id="feasibilityCommentCode" maxlength="6" value="#{nonOk.feaCommentInput.feasibilityCommentCode}" validatorMessage="Invalid format : ">
<f:validateLength minimum="6" maximum="6"/>
<f:validateRegex pattern="^[a-zA-Z]*$" />
</p:inputText>
</p:column>
...
<p:row>
<p:column style="text-align:center">
<p:commandButton id="addFeasibilityCommentButton" value="#{labels['nonOk.addComment']}" update="feaForceCommentTable,feasibilityComment,feasibilityCommentCode" disabled="#{nonOk.feasibilityCommentsDisabled}" global="false" process="@this,feasibilityCommentCode,feasibilityComment" actionListener="#{nonOk.onAddingFeasibilityComments}" icon="ui-icon-add" style="font-size: 9px;font-weight: bold;" />
</p:column>
</p:row>
...
</p:panelGrid>
...
<p:panelGrid id="feaForceFinalLineGrid" style="width: 100%" styleClass="feaPanelGrid">
<p:column style="width: 40%;text-align:left">
<p:inputText id="site" maxlength="6" value="#{nonOk.feaPossibleFinalLine.site}" validator="#{nonOk.validateCode}">
<f:validateLength minimum="1" maximum="6"/>
</p:inputText>
</p:column>
<p:row>
<p:column style="text-align:center">
<p:commandButton id="addFinalLineButton" value="#{labels['nonOk.addFinalLine']}" update=":popupForceFeasibilityId" disabled="#{nonOk.possibleFinalLinesDisabled}" global="false" process="@this,logistic,logisticOrigin,technicalFeasibility,technicalFeasibilityOrigin,feaRespLimitedDate,checkTrialOrderOnly,site,finalLine,industrialisationLevel,cost" actionListener="#{nonOk.onAddingFinalLines}" icon="ui-icon-add" style="font-size: 9px;font-weight: bold;" />
</p:column>
</p:row>
...
</p:dialog> |
Code:
1 2 3 4 5 6 7
| public void validateCode(FacesContext context, UIComponent component, Object value) throws ValidatorException {
Pattern p = Pattern.compile("^[a-zA-Z]*$");
Matcher m = p.matcher((String) value);
if (!m.matches()) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Invalid Input", "Invalid Input"));
}
} |