Announcement

Collapse
No announcement yet.

Dynamischer value bei

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

  • Dynamischer value bei

    Hi!

    Wir möchten die Ids unserer Filme dynamisch in das <html:select-Tag einfügen.
    Haben es schon mit <cut und bean:write innerhalb des value versucht. geht aber nicht (wegen der verschachtelten Tags?).
    Wie können wir es dann machen?

    <html:select property="movieOisd" size="1">
    <c:forEach var="movies" items=${allmoviesView.movieViews}">
    <htmlption value="???">
    <cut value="${movies.value.moviename} />
    </htmlption>
    </c:forEach>
    </html:select>

    Danke für Tipps!

  • #2
    Hallo Nadine!

    Der "Standard"-Weg bei Struts geht folgendermaßen:

    <pre>
    &lt;html:select property="selektierterWert"&gt;
    &lt;htmlption value="-- Bitte wählen --"/&gt;
    &lt;htmlptionsCollection name="meineListe" label="beschriftung" value="wert" filter="false"/&gt;
    &lt;/html:select&gt;
    </pre>

    Das <i>optionsCollection</i> Tag iteriert dabei selber über alle Einträge in der Liste <i>meineListe</i>. Pro Eintrag wird ein HTML-<i>option</i>-Tag erzeugt, dessen <i>value</i>-Attribut aus der Property <i>wert</i> gezogen und dessen Beschreibung (also der Text innerhalb der <i>option</i>-Tags) aus der Property <i>beschriftung</i> des aktuellen Eintrags stammt.

    Der selektierte Wert wird anschließend in der Property <i>selektierterWert</i> der jeweiligen <i>Form-Bean</i> gespeichert. Als "Zückerchen" wird ggf. in der Selektions-Liste noch der aktuelle Wert der Property <i>selektierterWert</i> vorselektiert.

    Das einzelne Tag <i>&lt;htmlption value="-- Bitte wählen --"/&gt;</i> dient übrigens dazu, einen "leeren" Default-Wert vorzublenden, damit man prüfen kann, ob überhaupt ein Wert eingegeben wurde.

    Ich hoffe, das hilft Dir!

    Jör

    Comment


    • #3
      hallo!

      hab ne frage zu dem codeausschnitt!
      ad: value="wert" - der scheint fix zu sein! haben probiert mit <bean:write .../> einen variablen wert reinzulegen, doch leider ohne erfolg! gibt es eine andere möglichkeit diesen variabel zu machen? (ohne java-code in der jsp)

      tia!
      ciao davi

      Comment


      • #4
        Hallo David!

        Das wundert mich jetzt. Um nochmal auf das Coding einzugehen: Das <i>optionsCollection</i> Tag iteriert über eine <i>Collection</i> von (also z. B. eine Liste oder ein Array ) von einzelnen Beans. Diese Beans haben jeweils eine Property <i>beschriftung</i> für die Beschriftung und eine Property <i>wert</i> für den Wert.

        Mit Pseudo-Coding (ich probier den jetzt nicht konkret aus, sondern schreibe ihn quasi "aus dem Kopf" - bitte check also nochmal Syntax etc.)

        <pre>
        // Bean

        public class WerteBean {
        private String wert, beschriftung;

        public String getWert() {
        return wert;
        }

        public String getBeschriftung() {
        return beschriftung;
        }

        // Setter entsprechend
        // ...
        }

        // Irgendwo - vermutlich in einer Action

        // Initialisierung der Collection/des Arrays
        WerteBean[] werteListe = new WerteBean[5];

        for (int i=0; i< werteListe.length; i++) {
        werteListe[i] = new WerteListe();
        // Werte vorbelegen
        }

        // Dieses Array im Request/in der Session speichern
        request.getSession().setAttribute("meineListe", werteListe);

        </pre>

        Und dann sollte obiger Code-Ausschnitt eigentlich funktionieren.

        Versuchs bitte mal,

        Jör

        Comment


        • #5
          hy jörg!
          danke für die antwort! doch ich glaub das is nicht das was ich brauch! hier mal der code den ich zurzeit habe:

          <html:select styleClass="cssXXXXXLarge" property="kstCb" >
          <logic:iterate id="kstberlin" name="Hinzufuegen_verknuepfung_bkl_repositoryBeanI d" property="l_bklall">

          <option
          value="<bean:write name="kstberlin" property="bereichCb"/>|<bean:write name="kstberlin" property="kstCb"/>/<bean:write name="kstberlin" property="linieCb"/>"
          selected>
          <bean:write name="kstberlin" property="bereichCb"/> |
          <bean:write name="kstberlin" property="kstCb"/>|
          <bean:write name="kstberlin" property="kst_bez"/> |
          <bean:write name="kstberlin" property="linieCb"/>|
          <bean:write name="kstberlin" property="lin_bez"/>
          </option>

          </logic:iterate>
          </html:select>

          ich hoffe er ist leserlich!
          das funktioniert ganz gut! bis auf das manko, dass er immer an den ersten oder letzten eintrag hüpft (browser-abhängig)

          da ich bei optionsCollection kein <bean:write .../> reinschreiben kann fällt dies leider weg...brauch dies leider...

          ich hoffe wir reden nicht aneinander vorbei!
          so...werd jez mal ein verständliches bsp für "onchange" suchen!

          ich hoffe durch das bsp wurde es klarer was ich vor habe ;-)
          ciao davi

          Comment


          • #6
            Hallo David!

            Leider ist mir noch nicht ganz klar, was Du wirklich erreichen willst. Ich habe das Gefühl, das Coding ist noch nicht vollständig - irgendwie hängen da noch ein paar Tags "in der Luft"... Kannst Du vielleicht sicherheitshalber noch mal das vollständige Coding posten?

            Aber wenn ich mal raten darf, so sollen die Werte für die Beschriftungaus verschiedenen Properties der Bean <i>kstberlin</i> zusammengesetzt werden - und dafür brauchst DU anscheidenen die <&lt;bean:write&gt;</i> Tags.

            Wie wäre es jetzt, in der <i>kstberlin</i> Bean eine eigene Property namens <i>label</i> o. ä. anzulegen, die Dir den concatenierten Text liefert? Anschließend müsstest Du die "normale" <i>&lt;htmlptionsCollection&gt;</i> eigentlich benutzen können.

            Gruß, Jör

            Comment


            • #7
              hy joerg!

              ich weiß, schon ne weile her...war jedoch ziemlich stressig bis jez. hams jez mit bean:write geloest, weils immer ausglesn wird, das mit dem label versteh ich nicht was du damit meinst. muss ich mal nachlesn wie das funktionieren kann. danke fuer die hilfe derweil. ich meld mich wenn noch fragen auftauchen (was sicher der fall sein wird ;-) - leider)

              ciao davi

              Comment


              • #8
                Hallo Jörg,

                so, wie du es oben aufgeführt hast, funktioniert es bei mir auch
                nicht. Habe schon seit Tagen genau das gesucht.... aber ich
                komme wohl nicht um ein iterate herum... :-(

                gruß Hache

                Comment


                • #9
                  Hallo Steven!

                  Kannst Du bitte nochmal Dein Coding posten? Am besten, Du hängst es als Attachment an, da der Umgang mit &lt; and friends einfach zu hakelig ist.

                  Ich würde mir gerne mal die Bean und die JSP ansehen - vielleicht finde ich ja doch noch ne Lösung...

                  Gruß, Jör

                  Comment


                  • #10
                    Hallo Jörg,

                    ich habe es jetzt doch noch hin bekommen.
                    Ich danke Dir!

                    mfg Steve

                    Comment

                    Working...
                    X