Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
810
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Fools Fools ist offline Mitglied Bronze
    Registriert seit
    Aug 2010
    Beiträge
    26
    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.
     

  2. #2
    Avatar von Sentoo
    Sentoo Sentoo ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Ort
    Brühl
    Beiträge
    131
    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
     

  3. #3
    Fools Fools ist offline Mitglied Bronze
    Registriert seit
    Aug 2010
    Beiträge
    26
    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

  1. Antworten: 2
    Letzter Beitrag: 15.10.07, 17:51
  2. Antworten: 5
    Letzter Beitrag: 20.09.07, 21:19
  3. Deklarieren einer Integer-Matrix
    Von the_skywalker im Forum Java
    Antworten: 1
    Letzter Beitrag: 27.04.05, 10:05
  4. Antworten: 2
    Letzter Beitrag: 11.08.04, 11:43
  5. anzahl der stellen einer integer
    Von CosmoKey im Forum PHP
    Antworten: 1
    Letzter Beitrag: 07.01.04, 13:47