/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Formular hjælp i forb. med servlet
Fra : Torben


Dato : 15-05-02 16:25

Hej derude!

Ved ikke om jeg rammer den rigtige gruppe, men der var ikke rigtig nogen i
"serverside" der kunne hjælpe, så hvis I lige kan bære over med mig

Vi sidder og er ved at skrive eksamens opgave - en webbutik.
I dne forbindelse sidder vi fast i følgende problem stilling:

I vores servlet får vi et resultset tilbage fra en database.
Resultsettet gennmløbes i en løkke. Hver linie i resultsettet
indeholder 6 informationer, disse gemmes i nogle variable - ingen
problem der, det ser således ud:

while(rs.next())
{
String a,b,c,d,e,f;
a = rs.getString(1);
b = rs.getString(2);
c = rs.getString(3);
d = rs.getString(4);
e = rs.getString(5);
f = rs.getString(6);

out.println("<tr>");
out.println("<td>" + a + "</td>");
out.println("<input type='hidden' name='Pnr' value='{a}'/>");
out.println("<td>" + b + "</td>");
out.println("<input type='hidden' name='Bet' value='{b}'/>");
out.println("<td>" + c + "</td>");
out.println("<input type='hidden' name='Tnavn' value='{c}'/>");
out.println("<td>" + d + "</td>");
out.println("<input type='hidden' name='Btid' value='{d}'/>");
out.println("<td>" + e + "</td>");
out.println("<input type='hidden' name='Bfarve 'value='{e}'/>");
out.println("<td>" + f + "</td>");
out.println("<input type='hidden' name='P' value='{f}'/>");
out.println("<td align='center'>");
out.println("<form name='formular'
action='http://localhost:8080/servlet/ServletBestil' method='post'>");
out.println("<input type='submit' name='' value='put i kurv'/>");
out.println("</form>");
out.println("</td>");
out.println("</tr>");
}

Problemet opstår når vi prøver at referere til henholdsvis
a,b,c,d,e,f i det html vi vi sætter på "out". Vi har forsøgt os
med forkellige former for strengkonkatenering, men har ikke
fundet noget der virker endnu.

Er der en venlig sjæl som måske har et tip eller to til hvordan
det gøres eller alternativer, så vil vi være meget taknemmelige.

På forhånd tak for hjælpen
M.v.h.
Carina og Torben







 
 
Morten (15-05-2002)
Kommentar
Fra : Morten


Dato : 15-05-02 16:59

Torben wrote:
> Hej derude!
>
> Ved ikke om jeg rammer den rigtige gruppe, men der var ikke rigtig nogen i
> "serverside" der kunne hjælpe, så hvis I lige kan bære over med mig
>
> Vi sidder og er ved at skrive eksamens opgave - en webbutik.
> I dne forbindelse sidder vi fast i følgende problem stilling:
>
> I vores servlet får vi et resultset tilbage fra en database.
> Resultsettet gennmløbes i en løkke. Hver linie i resultsettet
> indeholder 6 informationer, disse gemmes i nogle variable - ingen
> problem der, det ser således ud:
>
> while(rs.next())
> {
> String a,b,c,d,e,f;
> a = rs.getString(1);
> b = rs.getString(2);
> c = rs.getString(3);
> d = rs.getString(4);
> e = rs.getString(5);
> f = rs.getString(6);
>
> out.println("<tr>");
> out.println("<td>" + a + "</td>");
> out.println("<input type='hidden' name='Pnr' value='{a}'/>");
> out.println("<td>" + b + "</td>");
> out.println("<input type='hidden' name='Bet' value='{b}'/>");
> out.println("<td>" + c + "</td>");
> out.println("<input type='hidden' name='Tnavn' value='{c}'/>");
> out.println("<td>" + d + "</td>");
> out.println("<input type='hidden' name='Btid' value='{d}'/>");
> out.println("<td>" + e + "</td>");
> out.println("<input type='hidden' name='Bfarve 'value='{e}'/>");
> out.println("<td>" + f + "</td>");
> out.println("<input type='hidden' name='P' value='{f}'/>");
> out.println("<td align='center'>");
> out.println("<form name='formular'
> action='http://localhost:8080/servlet/ServletBestil' method='post'>");
> out.println("<input type='submit' name='' value='put i kurv'/>");
> out.println("</form>");
> out.println("</td>");
> out.println("</tr>");
> }
>
> Problemet opstår når vi prøver at referere til henholdsvis
> a,b,c,d,e,f i det html vi vi sætter på "out". Vi har forsøgt os
> med forkellige former for strengkonkatenering, men har ikke
> fundet noget der virker endnu.

Hvis jeg forstår dit spm. korrekt:

out.println("<input type='hidden' name='P' value='"+f+"'/>");

Lav så en javascript funktion:

function lookupByName(elemName) {
alert("Value: "+document.forms['name'].elements[elemName].value);
}

Husk at alle dine input felter skal i samme form element og at
det, bortset fra rettelsen til out.println, er et clientside
spørgsmål. Og at det ikke er pænt at have HTML i en servlet.

Mvh Morten


Torben (15-05-2002)
Kommentar
Fra : Torben


Dato : 15-05-02 17:21

Hej igen!

Jeg siger mange tak for hjælpen.
Jeg var ikke klar over at det var et clientside spørgsmål og undrer mig også
lidt endnu over det, da servletten jo ligger på webserveren??

Et lille spørgsmål i tilknytning til dit svar Morten. Hvis ikke man har html
i sin servelt, hvor har man det så? -i JSP eksempelvis?

Endnu en gang tak for hjælpen, det har jeg rodet længe med

M.v.h.
Torben Philippsen



Morten (15-05-2002)
Kommentar
Fra : Morten


Dato : 15-05-02 17:32

Torben wrote:
> Hej igen!
>
> Jeg siger mange tak for hjælpen.
> Jeg var ikke klar over at det var et clientside spørgsmål og undrer mig også
> lidt endnu over det, da servletten jo ligger på webserveren??

Men dens output er HTML, og det er der (i browseren) du vil referere
værdien af dit input felt, korrekt? Som sagt, kan jeg have misforstået
spørgsmålet.

> Et lille spørgsmål i tilknytning til dit svar Morten. Hvis ikke man har html
> i sin servelt, hvor har man det så? -i JSP eksempelvis?

Yeps. JSP sider compiles til servlets, fordelen er, at en ikke Java
kyndig kan gå ind og rette i layout/design. Der findes også alternative
mekanismer, fex. template systemer, hvor man laver en HTML fil
(template), der indeholder "placeholders" til værdier. Fex:

<html><head><title>@title@</title></head> .. </html>

En template engine analyserer så HTML dokumentet, og erstatter @title@
med en værdi du definerer i din klasse (fex. setPlaceHolder("title",
"Min titel")). Men hold dig til at state med til servlets, det er en
god øvelse :)

Hvad er det helt konkret du vil opnå med at 'referere' til de variable?
Hvis det bliver for clientside til gruppen her er du velkommen til at
sende mig en mail.

Mvh Morten


Kresten P. Vester (19-05-2002)
Kommentar
Fra : Kresten P. Vester


Dato : 19-05-02 22:47

Så vidt jeg kan se prøver du at generere et xsl dokument!?

Attributer angives ikke på den måde du gør det på.
Du skal gøre noget i stil med det her:
<xsl:attribute value>
<xsl:value-of "+a+"/>
</xsl:attribute>

Jeg kan ikke helt huske syntax'en - men det er noget i den stil.



Kresten P. Vester (19-05-2002)
Kommentar
Fra : Kresten P. Vester


Dato : 19-05-02 22:49

Hvis det bare er html du returnere er det da endnu simplere.

out.println("<input type='hidden' name='Pnr' value='{a}'/>");

skal i stedet være:

out.println("<input type='hidden' name='Pnr' value='"+a+"'/>");

tuborgparenteserne bruges kun i xsl/xml



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste