Announcement

Collapse
No announcement yet.

c:if model-value mit int vergleichen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • c:if model-value mit int vergleichen

    Hallo,

    ich arbeite an einem Projekt mit Spring (Spring MVC) und benutze für die Oberfläche JSPs.

    Über einen Controller hole ich mir ein ModelAndView Objekt und gebe die Daten auf der JSP-Seite aus:

    Code:
    <c:out value="${model.value}"/>
    Wenn ich ein Model-Value mit einem String vergleichen möchte, mache ich dies folgendermaßen:

    Code:
    <c:if test="${model.gender == 'm' }" >
    was aber soll ich tun, wenn mein Model Integer-Werte enthält?

    Folgendes habe ich ausprobiert, aber nichts klappt:

    Code:
    Möglichkeit 1:
    <c:if test="${model.day != 0}" >
    
    Möglichkeit 2:
    <c:if test="${model.day != '0'}" >
    
    Möglichkeit 3:
    <c:set var="day">${model.day}</c:set>
    <c:if test="${day != '0'}" >
    Irgendwas davon müsste doch gehen, oder??? Leider reagiert die Seite gar nichts, sie gibt nach keinem c:if etwas aus (was sie dann sollte)

    Für Hilfe bin ich dankbar!

  • #2
    müste es nicht gehen wenn du die "feste Zahl" (0) in eine variable packst und dann verglichst. wenn du sie mehremals brauchst lohnt es sich sogar.

    Tacco

    Comment


    • #3
      danke für deine Antwort!
      ich habe leider nicht so viel Ahnung... ich hab das jetzt so versucht:

      Code:
      Möglichkeit 1;
      <c:set var="leer" value='0'/>
      
      Möglichkeit 2;
      <c:set var="leer">0</c:set>
      
      Möglichkeit 3;
      <c:set var="leer" value="0"/>
      
      Jeweils mit:
      <c:if test="${model.day != leer}" >
         ...
       </c:if>
      nichts hat funktioniert :-(

      Comment


      • #4
        ich hab auch nicht die größte ahnung davon aber so <c:set var="leer" value='0'/> ist leer ein string und keine zahl mher.

        wo bekomst du denn model.day her?
        ich denke mal aus ein Controller.
        als mach dir dadrin ein int leer = 0; und schaf die über die modelmap mit rüber und dan kanst das so verglichen:
        <c:if test="${model.day != leer}" >

        du könntest auch versuchen dein model.day im contrioller auf string zu casten und dan so vergleichen:
        <c:if test="${model.day != '0'}" >

        Comment


        • #5
          gute idee... ich versuch mal ersteres

          Comment


          • #6
            ich glaube, mein Fehler liegt wo anders...

            nachdem nun alles nicht ging, auch das mit dem Controller nicht, habe ich gerade folgendes versucht:

            Code:
            <c:if test="${model.day != 0}" >
            und das geht. Mein Fehler war wohl, dass ich mehrere Bedingungen gesetzt habe.Ich habe es die ganze Zeit mit diesem hier getestet:

            Code:
            <c:if test="${model.day != 0} && ${model.month != 0} && ${model.year != 0}" >
            jemand vielleicht noch eine Idee, was daran falsch ist? tut mir leid für den unnötigen Aufwand..

            Comment


            • #7
              <c:if test="${model.day != 0 && model.month != 0 && model.year != 0}" >
              Christian

              Comment


              • #8
                vielen Dank, jetzt klappt es

                nochmal sorry für den doppelten Aufwand

                Comment


                • #9
                  ist ja kein problem^^
                  aber da kanst die merken das schon das was du bei dir hast hier herschreiben soltenst^^ das were mir da auch aufgefallen^^ wunderte mich schon das er die zahlen nicht vergleichen möchte^^"

                  Comment


                  • #10
                    ja, da hast du absolut recht...
                    ich habe mich irgendwie überschätzt und gedacht, dass daran eh nichts falsch ist. nächstes mal weiss ich es besser! :-)

                    Comment

                    Working...
                    X