Toon posts:

[JAVA] vector van servlet naar jsp

Pagina: 1
Acties:

Verwijderd

Topicstarter
Laat ik meteen maar met de deur in huis vallen;
Ben bezig met de eerste stappen in java te zetten en heb een aantal (eenvoudige) classes geschreven,
een method in deze class heeft als return value Vector.

Nu laat ik vanuit mijn servlet de method aanroepen om een Vector terug te krijgen van die method:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 (testservlet.java)
Vector orderRegels = new Vector();
FactuurGegevens factuurgegevens = new FactuurGegevens();
orderRegels = factuurgegevens.maakOrderRegels(1); 
// goed dat lukt (bewijs):
out.print("objecten in: orderRegels: "+ orderRegels.size() + "<br />"); // print in dit geval 3
// goed er zitten dus 3 (OrderRegel) objecten in deze vector
// vector in de sessie opslaan
request.setAttribute("orderregels", orderRegels);
// forward naar een JSP
RequestDispatcher rd = request.getRequestDispatcher("/toonfactuur.jsp");
        if(rd == null){
            throw new IOException("forward to resource '/toonfactuur.jsp' failed: invalid resource.");
        }


Nu wil ik graag in mn jsp door middel van JSTL deze vectoren uitlezen, dat wilde ik als volgt doen:
code:
1
2
3
4
 <c:forEach items="${orderregels}" var="OrderRegel">
       
       Parameter naam: ${OrderRegel.naam} <br />
    </c:forEach>


Je voelt em al, het enige wat geprint wordt is: Parameter naam.

Ik zie iets over het hoofd, maar kom er niet goed uit wat (sinds een week aan java begonnen, dus dan wil dat nog wel eens gebeuren ;))
Kan iemand mij hier wat hulp bij geven?

[ Voor 7% gewijzigd door Verwijderd op 02-02-2006 19:28 ]


  • momania
  • Registratie: Mei 2000
  • Laatst online: 14:44

momania

iPhone 30! Bam!

Je vergeet denk ik <c:out/> :)

Java:
1
<c:out value="${OrderRegel.naam}" />

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Topicstarter
Nou dat was het probleem niet,

Heb het inmiddels ook zover dat er daadwerkelijk wat geprint wordt, vervelend alleen dat het in dit geval 3 keer het naam-attribuut van het laatste object in de vector afdrukt...

Zo dus:
code:
1
2
3
Parameter naam: Abroller2000PlusAmazingAbsEdition
Parameter naam: Abroller2000PlusAmazingAbsEdition
Parameter naam: Abroller2000PlusAmazingAbsEdition

  • Casteloni
  • Registratie: November 2001
  • Laatst online: 26-03 13:31
Weet je zeker dat er 3 verschillende waardes in de vector zitten? Je zou het bijvoorbeeld kunnen debuggen of er in het servlet doorheen loopen.

Verwijderd

Topicstarter
Ik ga er vanuit van wel, ieder object wordt namelijk met addElement toegevoegd als volgt:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 try {
            resultset = database.handleSelectQuery(SQLString);
            
            while (resultset.next()) {
                orderregel.setNaam(resultset.getString(DatabaseInformation.ARTIKEL_TBL_NAAM));
                orderregel.setAantal(resultset.getInt(DatabaseInformation.FACTUURREGEL_TBL_AANTAL));
                orderregel.setFactuurprijsps(resultset.getInt(DatabaseInformation.FACTUURREGEL_TBL_FACTUURPRIJSPS));
                orderregel.setBtw(resultset.getInt(DatabaseInformation.FACTUURREGEL_TBL_BTW));
                orderregel.setVerhuurvan(resultset.getString(DatabaseInformation.FACTUURREGEL_TBL_VERHUURVAN));
                orderregel.setVerhuurtot(resultset.getString(DatabaseInformation.FACTUURREGEL_TBL_VERHUURTOT));
                orderRegels.addElement(orderregel);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


Ga het overigens nog even nakijken...

  • nxt
  • Registratie: November 2001
  • Laatst online: 04-02 09:36

nxt

Verwijderd schreef op donderdag 02 februari 2006 @ 19:49:
Ik ga er vanuit van wel, ieder object wordt namelijk met addElement toegevoegd als volgt:
Java:
1
2
3
4
            while (resultset.next()) {
...
                orderRegels.addElement(orderregel);
            }


Ga het overigens nog even nakijken...
Voeg je hier niet gewoon telkens dezelfde instantie van het object toe aan de vector?

  • momania
  • Registratie: Mei 2000
  • Laatst online: 14:44

momania

iPhone 30! Bam!

nxt schreef op donderdag 02 februari 2006 @ 20:51:
[...]

Voeg je hier niet gewoon telkens dezelfde instantie van het object toe aan de vector?
yups, je moet wel iedere keer een nieuwe instance maken :)

Neem je whisky mee, is het te weinig... *zucht*


  • paulh
  • Registratie: Juli 1999
  • Laatst online: 12-03 16:31
Even een tip. Gebruik een arraylist als je niet perse een vector hoeft te gebruiken. Een vector is gesynchroniseerd en een arraylist niet. Dus dat kan schelen in performance.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


Verwijderd

Topicstarter
Voeg je hier niet gewoon telkens dezelfde instantie van het object toe aan de vector?
Ik denk dat dat het is inderdaad, wat kan ik nu het beste doen, elke keer als de iteratie wordt doorgelopen een nieuw object aanmaken?
Zoiets als
Java:
1
2
3
4
5
int objCount = 1;
while (resultset.next()) {
Object objectRef+objCount = new Object();
//rest
}

Of is dit een te smerige manier?

@Paulh: Dankje voor de tip, ga ik zeker even naar kijken :)

[ Voor 5% gewijzigd door Verwijderd op 02-02-2006 21:53 ]


  • momania
  • Registratie: Mei 2000
  • Laatst online: 14:44

momania

iPhone 30! Bam!

Verwijderd schreef op donderdag 02 februari 2006 @ 21:53:
[...]
Zoiets als
Java:
1
2
3
4
5
int objCount = 1;
while (resultset.next()) {
Object objectRef+objCount = new Object();
//rest
}
Nope, simpeler:

Java:
1
2
3
4
5
while (resultset.next()) {
    OrderRegel orderregel = new OrderRegel();
    // object vullen
    orderRegels.addElement(orderregel);
} 


Lijkt me verstandiger als je je eerst wat beter gaat verdiepen in het java programmeren zelf.
Het gebruiken van dingen als servlets etc komt dan vanzelf wel, maar zonder goede basis zal je het anders nooit goed onder de knie krijgen. ;)

[ Voor 22% gewijzigd door momania op 02-02-2006 21:59 ]

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Topicstarter
Is zo, maar voor school moesten we ons direct op servlets/jsps storten voor we uberhaupt OOP en de daarbijhorende programmeertechnieken hadden behandeld, de programmeerlessen lopen tamelijk asynchroom met de projecten heb ik het idee ;)

Overigens leer ik natuurlijk uit eigen beweging ook (heb niet voor niets deze opleiding gekozen), maar het kan soms ietwat verwarrend werken :)

[ Voor 24% gewijzigd door Verwijderd op 02-02-2006 22:07 ]

Pagina: 1