Après la validation OmniFaces <o:validateMultiple>
, les valeurs <p:inputText>
sont perdues.Après OmniFaces o: validateMultiple validation, PrimeFaces p: les valeurs inputText sont perdues avec INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
Je reporduce problème alors web.xml contient le paramètre javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
:
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
Si je supprime ce paramètre - tout fonctionne bien.
J'ai vue JSF:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:o="http://omnifaces.org/ui">
<h:form id="someForm">
<div>
<o:outputLabel for="bar1" value="Bar1" />
<p:inputText id="bar1" />
<p:message for="bar1"/>
</div>
<div>
<o:outputLabel for="bar2" value="Bar2" />
<p:inputText id="bar2" />
<p:message for="bar2"/>
</div>
<div>
<o:outputLabel for="bar3" value="Bar3" />
<h:inputText id="bar3" />
<h:message for="bar3"/>
</div>
<div>
<o:outputLabel for="bar4" value="Bar4" />
<h:inputText id="bar4" />
<h:message for="bar4"/>
</div>
<o:validateMultiple components="bar1 bar2 bar3 bar4"
validator="#{sameValueValidator}"
message="All values shold be the same"
showMessageFor="bar2 bar4"/>
<p:commandButton value="submit" process="@form" update="@form" />
</h:form>
</html>
et validateur:
public class SameValueValidator implements MultiFieldValidator {
@Override
public boolean validateValues(FacesContext context,
List<UIInput> components, List<Object> values) {
if (!values.isEmpty()) {
Object firstValue = values.get(0);
for (Object value : values) {
if (!Objects.equal(firstValue, value)) {
return false;
}
}
return true;
} else {
return false;
}
}
}
Si <o:validateMultiple>
validation échoue (textes <p:inputText>
composants ne sont pas les mêmes) <p:inputText id="bar1">
et <p:inputText id="bar2">
sont vides, mais <h:inputText id="bar3">
et <h:inputText id="bar4">
garder des valeurs.
Je pense que <p:inputText>
ne devrait pas perdre des valeurs ou est-ce que je fais quelque chose de mal?
J'utilise,
- PrimeFaces 5.1.14 (ou 5.2.RC2)
- OmniFaces 1.8.1
- Mojarra 2.2.10
- Tomcat 8
- Java 8
Impossible de le reproduire sur PF 5.1 + OF 1.8.1 + Mojarra 2.2.10. Je n'ai pas la version PrimeFaces Elite aux mains, mais je n'ai pas pu la reproduire sur PF 5.2 RC2. Pouvez-vous le reproduire en utilisant PF 5.1 ou 5.2 RC2? Si oui, quelle impl implente/version utilisez-vous? Par ailleurs, OmniFaces a un '' dans le but de valider plusieurs composants sur l'égalité. –
BalusC
Oui, je peux reproduire ce problème en utilisant PF RC2, Mojarra 2.2.10. Si je supprime: javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL param de web.xml - alors tout fonctionne bien. - a le même problème –
Palladium