3 votes

JSF 2 - masquer les valeurs par défaut sur < ? extends Number>

Existe-t-il un moyen de masquer les valeurs par défaut de mes propriétés numériques ? J'ai une propriété int et sur mon point de vue le <h:inputText /> affiche un 0. De plus, si je laisse cette entrée vide, j'obtiens un NullPointerException sur ce sujet.

Puis-je masquer la valeur par défaut et traiter les entrées vides comme valeur par défaut ?

J'utilise mojarra 2.1.2 en Tomcat 7

10voto

BalusC Points 498232

Le primitif int La valeur par défaut est toujours 0 . Vous voulez utiliser Integer à la place. Par exemple :

public class Entity {

    private Integer value;

    // ...
}

Quant à le garder null tout en soumettant des données vides, ajoutez le paramètre contextuel suivant à votre fichier web.xml :

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

En outre, si vous utilisez Tomcat ou un clone qui utilise l'analyseur Apache EL, ajoutez également l'argument suivant pour la VM de démarrage du serveur afin d'éviter qu'elle ne traite Number comme des primitives :

\-Dorg.apache.el.parser.COERCE\_TO\_ZERO=false

Dans Eclipse, vous pouvez le définir dans la configuration du serveur (double-cliquez sur l'entrée du serveur dans la section Serveurs ) dans la Arguments de l'onglet Configuration du lancement ouvert dialogue. En production, vous pourriez l'ajouter à la JAVA_OPTS variable d'environnement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X