ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
810
810
EMPFEHLEN
-
Wunderschönen Guten Tag!
Bin leider schon wieder am verzweifeln und weiß mir nicht anders zu helfen als nochmal hier um Hilfe zu bitten.
Ich habe ein InputText-Element vom Typ Integer, dass mir beim Laden des Eingabe-Formulars das entsprechende Eingabefeld mit einer 0 vorbelegt. Dies ist aber von mir nicht erwünscht und würde das gerne unterbinden. Nur weiß ich einfach nicht wie...
Vielleicht noch ein wenig Code:
HTML-Code:<h:inputText id="field" value="#{customerBean.field}" converter="javax.faces.Integer" validator="#{validatorBean.validateField}" />
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
@ManagedBean(name = "customerBean") public class Customer { private int field; public int getfield() { return field; } public void setfield(int field) { this.field = field; } }
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
@ManagedBean(name = "validatorBean") public class Validator { public void validateField(FacesContext ctx, UIComponent comp, Object inValue) throws ValidatorException { int value = (Integer) inValue; if (!(value >= 0 && value <= 100) && !(value == -9)) { throw new ValidatorException(new FacesMessage("Illegal entry! Legal values are: '0' to '400', '-9'.", null)); } } }
Wenn ich nun die Seite bzw. das Formular welches das inputText-Element enthält lade, dann erhalte ich folgendes Bild:
[IMG=http://img155.imageshack.us/img155/9759/nullc.png][/IMG]
Also ein Eingabefeld, das mit einer 0 vorbelegt ist. Ich weiß natürlich, dass wenn in Java eine Integer-Variable deklariert wird, diese default-mäßig mit 0 initialisiert wird. Kann ich ja auch schlecht verhindern... und genau dieser Wert wird mir dann beim Laden des Formulars auch angezeigt. Wie kann ich das verhindern?
Vielen lieben Dank für jede Hilfestellung.
-
Hallo Fools,
das ist kein Bug, sondern ein Feature von deinem Tomcat 6 (den Du vermutlich benutzt). Darüber sind wir auch schon gestolpert.
Das wurde in den 6er Tomcat reingepatcht, um mit der JSP Spec konform zu sein. Ich meine das war Update 15 oder 16. Die Diskussion zu dem Bug findest Du hier:
https://issues.apache.org/bugzilla/s...gi?id=43285#c7
Um das Feature wieder los zu werden, musst du es konfigurieren: http://tomcat.apache.org/tomcat-6.0-...ssion_Language
Das Property heißt "org.apache.el.parser.COERCE_TO_ZERO" und Du möchtest es auf "false" gesetzt wissen
-
Hallo Sentoo,
danke für den Hinweis. Ich hatte diesbezüglich im Netz auch schon was gefunden, nur dass ich eine andere Einstellung an meinem Tomcat machen musste. Hatte aber nichts gebracht...
Im Übrigen: Ja, ich benutze einen ziemlich aktuellen Tomcat 6.
Inzwischen habe ich aber mein Problem insofern umgangen, indem ich für meine Variable den Datentyp "Integer" statt den primitiven Datentyp "int" nehme. Integer ist standardmäßig auf "null" gesetzt, während int auf "0" gesetzt wird.
Ähnliche Themen
-
VC++, Inhalt einer Textdatei in Eingabefeld anzeigen
Von bendorphin im Forum C/C++Antworten: 2Letzter Beitrag: 15.10.07, 17:51 -
VC++,Inhalt einer Textdatei in Eingabefeld anzeigen?
Von bendorphin im Forum C/C++Antworten: 5Letzter Beitrag: 20.09.07, 21:19 -
Deklarieren einer Integer-Matrix
Von the_skywalker im Forum JavaAntworten: 1Letzter Beitrag: 27.04.05, 10:05 -
MFC Membervariable von Eingabefeld ausdialog in einer Funktion verwenden?
Von ibo im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 11.08.04, 11:43 -
anzahl der stellen einer integer
Von CosmoKey im Forum PHPAntworten: 1Letzter Beitrag: 07.01.04, 13:47





Zitieren
Login




