Mon exigence semble simple, mais je sens que je vais faire quelque chose de mal dans le code.
Tout ce dont j'ai besoin, c'est insérer "null" dans la base de données Oracle lorsque rien n'est transmis du champ InputText de l'interface utilisateur. P> < p> paymantspEcomPage.xhtml b> p> paiepecvo.java b> p> et quand je ne sais rien dans InputText, alors à la place de NULL, 0 est entré dans le tableau, qui a une signification différente dans ma logique d'entreprise , s'il vous plaît aidez-moi à faire des changements de code nécessaires. p> p>
3 Réponses :
Je ne sais pas comment vous lisez ce xhtml. À la couche Java, vous pouvez remplacer soit le constructeur de PaymentsPecvo ou le setter pour PayMstartwk P>
Salut, essayé entier privé paymstartwk = null; Mais ne semble pas de chance!
PaymentsPECVO () {SETPAYMSTARTWK (NULL);}
paymstartwk = null; et PaymentsPecvo () {SetPaymStartwk (NULL);} Exécutez Vain, Stills définit la valeur par défaut comme 0.
Ensuite, votre setter est appelé ailleurs. Vous devez vérifier cette partie
Essayez ceci mais vous avez peut-être besoin de beaucoup d'analyses là-bas. p> EDIT * P> Si vous n'entrez rien à votre "Texte d'entrée" La valeur passée est NULL mais que vous l'attrapez avec un entier, il interprète null à 0.
Donc, lorsque vous l'enregistrez, même après avoir manipulé des méthodes et des variables à NULL, elle stockera «0», car il s'agit essentiellement de la valeur par défaut. P> Une autre solution, je pense faire une classe personnalisée qui stocke des entiers p> Exemple: p> Vous pouvez faire toutes les implémentations que vous souhaitez , p> Vous pouvez utiliser cela comme substitut à La classe INTEGER que vous utilisez, si vous ne voulez pas utiliser de chaîne p> p>
I Utilisation de la méthode de Spring Data Data Save () pour stocker dans le tableau, et il serait bien que la logique soit implémentée à l'aide d'entier au lieu de la classe de cordes.
Si vous n'entrez rien à votre "texte d'entrée", la valeur transmise est null mais que vous l'attrapez avec un entier qui interprète null à 0.
Entier n'est qu'une classe wrapper mais ce n'est pas un objet, la valeur par défaut des objets est NULL, le type primitif numérique a une valeur par défaut de 0
D'accord, mais comment puis-je mettre entier à NULL dans mon haricot si je n'entre rien? Et entier étant une classe, il peut stocker la valeur null où comme étant une primitive ne peut pas stocker NULL.
Vous ne pouvez pas, oui, il peut stocker NULL mais vous ne pouvez pas récupérer la valeur, il retournera 0.
À mon mauvais ses magasins 0 et retourne 0.
@Inayathulla vérifie mes modifications, si cela peut aider
Merci pour votre aide, mais c'est un problème réel tout en intégrant JSF avec Tomcat.
et quand je ne sais rien dans InputText, alors au lieu de NULL, 0 est entré dans le tableau em> p>
Ce problème est reconnaissable comme l'analyseur EL Tomcat ne prenant pas compte que vous utilisez
entier code> au lieu de
int code>. Vous devez ajouter l'argument VM suivant à Tomcat Options de démarrage: P>
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
J'ai utilisé -dorg.apache.el.parser.coerce_to_zero = FALSE, en tant qu'argument et ma logique d'entreprise utilise un fichier de données entier plutôt que INT. J'utilise JPA de données de printemps pour persister les entrées. @TransActional (Readonly = Faux) Public PaymentsPEC Enregistrer (PaymentsPec PaymentsPec);
Désolé, je ne fais pas de printemps. Vous feriez mieux de poser une question distincte pourquoi un champ numéro code> avec un
null code> est obtenu sous forme
0 code> à partir de données de ressort JPA.
Merci, j'aime lire vos commentaires :)
@Ballusc, cette question existe réellement à JBoss Wildfly 8.2.0 finale. J'ai un messagebean code> avec une variable code> integer code> NULL, mais lors du fait de
# {non vide} code> Le composant est rendu. Existe-t-il une façon de traiter
null code>
entier code> comme null dans jsf el?
Faites une méthode! , si InputText est null? renvoyer une valeur par défaut null
La réponse à votre question est probablement ici: Stackoverflow.com/Questtions/6098210/...
@Badaro il a résolu ma moitié de problème, et maintenant ses valeurs nulles, mais lors de la récupération de la récupération de 0 à nouveau.