13. december 2001 - 18:00Der er
13 kommentarer og 2 løsninger
Custom Tags tutorial eller løsning
Hajse. Jeg skal have lavet noget Custom Tags og jeg har desværre forlagt alt mit material om, hvordan man laver det. Det jeg konkret skal bruge er et taglib der kan søge på kunder.
Jeg har lavet min findKunder(parametre) i en KunderADT klasse og det er denne jeg vil bruge.
Mit taglib/custom tags skal så ved kald af en list metode udskrive alle de fundne kunder. Til det formål har jeg resultatet i en container, og det kan jeg sagtens udskrive nu.
ER der en nem måde hvorpå jeg kan lave et Taglib jeg kan bruge? Det skal kun kunne to ting. Udføre en søgning og liste resultatet.
Det lader til at være gode kilder, men jeg støder inf i et problem. jeg kan ikke teste om det virker da import javax.servlet.jsp.*; fejler, og jeg ved ikke hvor jeg skal lede efter javax.servlet. Den findes ikek umiddelbart i mit system?!
det der måske er din nemmeste løsning er, at tilgå din database klasse som en bean der resulterer en Collection, og så derefter implementere det iteration tag, som er beskrevet i suns tutorial
Under \"Kunder fundet:\"vil jeg gerne have udskrevet navnene på kunderne, men det vil det tilsyneladende ikke. Den finder kunder det har jeg checket, men den fejler.
Min ListTag har flg: if(itr == null) { return SKIP_BODY; }
Jeg er nu kommet så langt at det forhåbentligt snart virker.
public int doStartTag() throws javax.servlet.jsp.JspException { // Åbner forbindelsen til databasen kunder.åben();
// Opretter en container til at indeholde vores resultat KundeContainer k = kunder.findKunder(navn, telefon, kundenr); ListIterator itr = k.createIterator();
Har fået det til at virke. MIn kode ser nu sådan ud: public int doStartTag() throws javax.servlet.jsp.JspException { // Åbner forbindelsen til databasen kunder.åben();
// Opretter en container til at indeholde vores resultat k = kunder.findKunder(navn, telefon, kundenr); itr = k.createIterator();
hvis du stadig bruger følgende : ## <list:list navn=\"T\" telefon=\"\" kundenr=7> Kunder fundet:
</list:list> ##
Så skal du lige huske at ALLE sendte attributter (også tal) skal sendes i quotes - dvs. <list:list navn=\'Navn\' telefon=\'\' kundenr=\'7\'> </list:list>
Men under alle omstændigheder : Har du husket at lave en public void setNavn(String navn)-metode...
HUSK : når du sender data afsted til et tag som attributter, så SKAL der være en setXXX-metode, ellers gå den hel gal!
Et tag initialiseres med alle attributterne umiddelbart inden doStartTag() går i gang... Dette sker ved azt der for hver attribut søges efter en setXXX metode, som kan \'modtage\' attributten.
Dette betyder, i dit tilfælde, at du skal have tre set-metoder i din tag-klasse * public void setNavn(String navn) * public void setTelefon(String telefon) <-- eller int, alt efter datatype :-) - og * public void setKundenr(int kundenr)
Det er korrekt det var en skrivefejl at jeg ikke havde \"pakket\" mit 7-tail ind i quoutes. Men som jeg skrev så virker min kode, og det må jo betyde at jeg har lavet min get og set metoder :-) Men tak alligevel. Det er god information til evt. andre der skal lave tags.
Så til point uddelingen.
>> erik Jeg ved erik ikke tager imod point og det er fair nok.
>> lbhansen? Du må gerne ligge et svar hvis du vil have nogle point.
>>Kresten Gode links. Ikke helt alle 60 points værd, men noget er de værd :-)
>>bearhugx Du kom desværre for sent :-) Sorry... Venter lige og hører lidt respons fra lbhansen.
heh, jeg kommer fra ASP verdenen - og kan kun sige det er en fordel og mere professionelt.... bare en del mere besværligt :(
Synes godt om
Ny brugerNybegynder
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.