Avatar billede dabster Nybegynder
23. oktober 2002 - 17:36 Der er 14 kommentarer

Velocity servlet

Hej med jer,

Jeg sidder og leger med Velocity, og har naturligvis et spørgsmål.

Hvis jeg f.eks. har følgende meget forsimplede skabelon:
<html>
<head><title>Eksempel</title></head>
<body bgcolor="#ffffff">
<h2>Hello from $firstname!</h2>
<p>Jeg hedder $lastname til efternavn</p>
</body>
</html>

Jeg ville meget gerne hente $firstname og $lastname fra en database.
Jeg vil dog kun hente dem fra databasen, hvis de indgår i skabelonen. Der er jo ingen grund til at belaste db-serveren, hvis der ikke var noget der hed $efternavn i skabelonen.

Hvordan tjekker jeg for, hvilke $etellerandet der er i en vilkårlig skabelon?

På forhånd tak,
Hans
Avatar billede disky Nybegynder
23. oktober 2002 - 17:46 #1
Koder det i alm. jsp og bruger evt. servlets.

Velocity er jo kun en template generator (lidt groft skåret ud) den laver ikke noget ellers.

Check det derfor i den underliggende kode.
Avatar billede dabster Nybegynder
23. oktober 2002 - 17:52 #2
Jeg sidder og koder servlets (glem jsp), men jeg er ikke helt klar over, hvordan jeg i servlet'en finder ud af, hvilke "$etellerandet" der er i skabelonen?!
Avatar billede dabster Nybegynder
23. oktober 2002 - 17:54 #3
Jeg har en idé om at jeg skal bruge context.getKeys() kommandoen, men hvordan???
Avatar billede disky Nybegynder
23. oktober 2002 - 18:12 #4
det kan du ikke fra hverken jsp eller servlets.

Men du kan finde ud af hvilke felter der er i en form via

request.getParameters()

Som returnerer en liste over fields i en form

p.s. Det er en rigtig dårlig ide at lave HTML design via en servlet.
Avatar billede dabster Nybegynder
23. oktober 2002 - 18:20 #5
hvorfor er det en dårlig idé?
Avatar billede disky Nybegynder
23. oktober 2002 - 18:28 #6
Fordi du har en hård kobling imellem design og funktionalitet.
Hvis du f.eks. skal skifte design på dit website, skal du ændre i samtlige servlets.

Bruger du derimod JSP sammen med custom tags, kan en webdesigner rette det i en alm. webeditort der accepterer xml tags, og du behøver ikke at recompile skidtet bagefter.

Jeg ville personligt aldrig overlade servlet kode der System.out'er html til en webdesigner i håb om de ikke ødelægger noget.

p.s. Læs en bog om design patterns :-)
Avatar billede arne_v Ekspert
23. oktober 2002 - 18:32 #7
????

JSP bliver kompilet af JSP-kompiler til servlet java
kode.

Velocity templates bliver expandet til servelet Java.

JSP bruges til at adskille presentation fra business
logic.

Velocity bruges til at adskille presentation fra
business logic.

Så jeg må spørge om du har læset om Velocity ?
Avatar billede dabster Nybegynder
23. oktober 2002 - 18:42 #8
Uden at være ekspert, så vil jeg mene at Velocity netop ophæver den hårde kopling mellem design og funktionalitet.

Men for at vende tilbage til mit spørgsmål, kan det lade sig gøre?
Avatar billede arne_v Ekspert
23. oktober 2002 - 18:49 #9
Jeg har ikke selv brugt Velocity.

Har muligvis planer om at lege lidt med JPublish, som
bygger oven på Velocity.

Der er en del docs på:
  http://jakarta.apache.org/velocity/getting-started.html
men dem formoder jeg, at allerede har søgt i.
Avatar billede dabster Nybegynder
23. oktober 2002 - 19:25 #10
Ja, dem har jeg søgt i...
Avatar billede arne_v Ekspert
23. oktober 2002 - 19:39 #11
Har du også prøvet Velocity mail-listen ?

Der er reference nede i bunden af:
  http://jakarta.apache.org/site/mail2.html
Avatar billede disky Nybegynder
23. oktober 2002 - 20:08 #12
dabster:
Yep Velocity gør netop det, men det var dig der spurgte om hvorfor man ikke skulle generere html i en servlet.
Avatar billede dabster Nybegynder
23. oktober 2002 - 20:34 #13
Det har jeg da aldrig spurgt om??? Jeg spurgte hvordan man fandt de variable $etellerandet der var i en html-skabelon!

Men kan nogen løse mit problem, eller er det et bedre Template program end Velocity?
Avatar billede arne_v Ekspert
23. oktober 2002 - 20:38 #14
Der er mange - rigtigt mange - template programmer.

Det er mit indtryk (men jer er *ikke* ekspert), at
Velocity er meget godt, men relativt low-level og
dermed lidt svært at bruge.

Det indtryk baserer jeg bl.a. på, at der er mange
tools som bygger oven på Velocity.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester