Question

Nous utilisons un h:inputText dans une page JSF qui est lié à une propriété Integer (et peut donc accepter null). Quand il n'y a pas de valeur écrite dans le h:inputText, la forme soumet une 0 au lieu de null. Nous utilisons la Trinité 1.2.2 et Tomcat 6.0.20 (nous avons également essayé avec Tomcat 6.0.14 comme nous le lisons que cela pourrait se produire avec Tomcat versions) CERTAINS.

Comment est-ce fait et comment puis-je résoudre?

Était-ce utile?

La solution

Cette « fonctionnalité » a été résultat d'un bugfix à EL qui a été présenté comme par Tomcat 6.0.16. Conformément au chapitre 1.18.3 de la spécification EL , une valeur de type de numéro qui est null devrait être contraint à 0. Avant Tomcat 6.0.16 cela a été « mal » été contrainte à une chaîne vide.

Après tout, une chaîne vide était en réalité beaucoup plus intuitive qu'un zéro. Les gars Tomcat à Apache ont une plainte de beaucoup au sujet de cette bugfix, donc ils ont introduit un nouveau paramètre de configuration en saveur d'un argument VM selon Tomcat 6.0.17 qui désactiver cette bugfix.

-Dorg.apache.el.parser.COERCE_TO_ZERO=false

Je l'ai d'ailleurs demandé un changement à cette spécification qu'il ne devrait forcer vide / null primitives types à zéro et vide / null non primitifs types de java.lang.Number à une chaîne vide: question JSP EL 184 . Ils ne l'ont pas beaucoup avec elle, mais la question au moins eu beaucoup de votes. Qui sait ... Ce comportement est au moins en effet assez ennuyeux car il est non-intuitive.

Voir aussi:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top