Announcement

Collapse
No announcement yet.

probleme mit logic:iterate-Tag

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

  • probleme mit logic:iterate-Tag

    Hier Leute,

    ich habe mir eine static-Methode geschrieben, die mir als Ergebnis einen Vector mit Ergebnisobjecten aus einer Datenbankabfrage zurückliefert. Diesen Vector möchte ich gerne mittels logic:iterate durchlaufen. Dazu habe ich folgenden Code geschrieben:
    <pre>
    &lt;table cellpadding="0" cellspacing="0" border="1"&gt;
    &lt;logic:iterate id="child" name="children" type="DQLResult"&gt;
    &lt;tr&gt;
    &lt;td&gt;
    &lt;a href="index2.jsp?browser=documents&obid=09013ee880 00e123"&gt;
    &lt;bean:write name="child" property="xmlnumber" /&gt;
    &lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
    owner
    &lt;/td&gt;
    &lt;/tr&gt;
    &lt;/logic:iterate&gt;
    &lt;/table&gt;
    </pre>

    Das Ergebnis ist eine weiße Seite. Was mache ich verkehrt? Bei children handelt es sich um den besagten Vector und mit type="DQLResult" wollte ich dem tomcat mitteilen, dass er die einzelnen Objekte, die er aus dem Vector ausliest, bitte in diese Klasse casten soll. Ein Aufruf wie:
    <pre>
    System.out.println((DQLResult) children.get(i)).getXMLNumber());
    </pre>
    führt zum korrekten Ergebnis. Daher schein ich den iterate-Tag noch nicht vollständig verstanden zu haben... Kann mir wer helfen?

    Gruß und vielen Dank für alle Tipps,
    Andreas

  • #2
    Hallo,

    Ist <i>children</i> ein Objekt im <i>session</i>- oder <i>request</i>-Scope?

    Wie wird das <i>children</i> Objekt auf der Seite instanziert?

    Heisst die Property xmlNumber oder xMLNumber?

    Gruss,

    Jör

    Comment


    • #3
      Hi,

      erstmal vielen Dank für deine Antwort. Nun meine Kommentare dazu:
      children entsteht auf der selben jsp-Seite, auf der auch der iterate-Tag steht durch einen Methodenaufruf:
      <pre>
      Vector children = DQLQuery.getChildren(request.getParameter("obid"), connection.getSession());
      </pre>

      Daher dürfte sich dieses Object im request-Scope befinden.

      Die proberty heißt xmlnumber und die zugehörige getter-methode entsprechend:
      <pre>
      public String getXmlnumber()
      </pre>

      Gruß,
      Andrea

      Comment


      • #4
        Hi,

        Das könnte u. U. das Problem sein. Wenn die Variable in einem Scriptlet (&lt;% ... %&gt angelegt wird, so befindtes sie sich nicht automatisch auch im <i>request</i>-Scope.

        Funktioniert vielleicht diese Variante:

        <pre>
        Vector children = ... // siehe oben

        pageContext.setAttribute("children", children, PageContext.PAGE_SCOPE);
        </pre>

        mit anschliessendem Zugriff via

        <pre>
        &lt;logic:iterate name="children" id="child" scope="page"&gt;
        </pre>
        </pre&gt

        Comment


        • #5
          Hi,

          Sie/du sind/bist (ich weiß im moment nicht, wie hier der umgangston ist) gut. Das funktioniert. Vielen Dank!!!

          Gruß,
          Andrea

          Comment


          • #6
            Ich auch nicht. "Du" reicht aber ;-

            Comment

            Working...
            X