Domanda

Stiamo usando un h:inputText in una pagina JSF che è destinato a una proprietà Integer (e quindi in grado di accettare null). Quando non v'è alcun valore scritto nel h:inputText, la forma è la presentazione di un 0 invece di null. Stiamo usando Trinidad 1.2.2 e Tomcat 6.0.20 (abbiamo anche provato con Tomcat 6.0.14 come abbiamo letto che questo potrebbe accadere con certains Tomcat versioni).

In che modo questo ha causato e come posso risolverlo?

È stato utile?

Soluzione

Questa "funzione" è stato frutto di un bugfix in EL che è stato introdotto come da Tomcat 6.0.16. Come per il capitolo 1.18.3 del EL specifica , un valore di tipo numero che è null dovrebbe essere costretto a 0. Prima Tomcat 6.0.16 questo è stato "erroneamente" stato costretto ad una stringa vuota.

Dopo tutto, una stringa vuota era effettivamente molto più intuitivo di uno zero. I ragazzi Tomcat a Apache ha un sacco lamentele su questo bugfix, così hanno introdotto una nuova impostazione di configurazione nel sapore di un argomento VM come da Tomcat 6.0.17 che avrebbe disattivare questa bugfix.

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

Ho dal modo in cui ha richiesto una modifica a questo spec che dovrebbe costringere solo svuotare / null primitivi i tipi a zero e svuotare / null non primitive tipi java.lang.Number a stringa vuota: JSP EL emissione 184 . Non hanno fatto molto con esso, ma la questione, almeno ha un sacco di voti. Chi lo sa ... Questo comportamento è almeno in effetti piuttosto fastidioso, perché è non intuitivo.

Vedi anche:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top