Avatar billede tuidoi Nybegynder
04. marts 2009 - 22:23 Der er 9 kommentarer og
1 løsning

JSP - <Klasse> cannot be resolved to a type. why?

Hej

Jeg prøver at oprette et objekt af min Controller servlet, der er en klasse som jeg selv har oprettet.

Min tanke var, at jeg i denne controller ville controllere i mit data objekt om et valgt bruger id allerede er brugt før at jeg tilføjer det i en tabel via min jsp side.

Men når jeg i min jsp fil prøver at oprette et objekt af typen Controller får jeg følgende fejl:

An error occurred at line: 9 in the jsp file: /writeData.jsp
Controller cannot be resolved to a type

I min linje 9 har jeg følgende:

Controller info = new Controller();

Jeg har overvejet om denne klasse måske skal importeres på en vis måde, men på den anden side ville jeg vel få en fejl i Eclipse, hvis den ikke kendte typen Controller.

Hvad kan fejlen være?

På forhånd tak!
Avatar billede arne_v Ekspert
04. marts 2009 - 22:27 #1
Det er ikke saadan du bruger controller servlet.

Du mapper URL til servlet i web.xml, browserens request rammer servlet, servlet goer noget og gemmer diverse data i request objektet og forwarder til JSP page, JSP page viser saa HTML inkl. data fra servlet.
Avatar billede tuidoi Nybegynder
04. marts 2009 - 22:38 #2
Ok. det undrede mig bare, at man sagtens kan oprette java.util.Date objekter når man ikke kan oprette objekter af sine egne klasser.

Men hvordan foregår det så med servlets?
Efter hvad du skriver nu forstår jeg det sådan at når man f.eks. trykker på en knap f.eks. log in, så istedet for at sende direkte videre til f.eks. userLoggedIn.jsp så sendes man først videre til controller servletten, der "ripper" siden for data vha. request.getParameter("test"); også sender videre til en anden jsp side alt efter hvilke data den behandlede?

Hvis hvordan får jeg så de informationer jeg modtager fra brugeren til at komme op i tabellen efter de er blevet godkendt af controlleren?
Avatar billede arne_v Ekspert
04. marts 2009 - 22:46 #3
Du kan ogsaa godt oprette instanser af dine egne klasser fra en JSP side.

Stort set ligesom med de indbyggede.

Package skal importeres i toppen og:

<%
X o = new X();
%>

men class filen skal ligge i:

WEB-INF/dinpakke/X.class
Avatar billede arne_v Ekspert
04. marts 2009 - 22:47 #4
Hvis du kun skal vise data fra brugeren, saa kan du nok ligesaa godt gaa direkte til JSP siden.

Controller servlet er mest relevant hvis der skal enten hentes data fra database eller opdateres data i database.
Avatar billede arne_v Ekspert
04. marts 2009 - 22:48 #5
Med hensyn til hvordan alle disse ting haenger sammen tror jeg at du ville faa et godt overblik ved at studere:

http://www.eksperten.dk/guide/743
Avatar billede arne_v Ekspert
04. marts 2009 - 22:49 #6
Og husk at Java EE er et kolossalt stort omraade.
Avatar billede tuidoi Nybegynder
04. marts 2009 - 22:52 #7
Lige nu arbejder jeg blot med en array, men interfacet til dette Data objekt er det samme som det der skal bruges til databasen senere hen, så på længere sigt skal jeg også have implementeret databasen.

Hvor jeg med mit controller objekt først skal kontrollere at brugernavnet ikke allerede ligger i databasen. også derfra enten oprette en ny bruger eller udskrive at brugernavnet er brugt.
Avatar billede arne_v Ekspert
05. marts 2009 - 01:59 #8
Det passer perefct til en servlet og en JSP side (eller en Struts/JSF controller servlet + en Struts action class/JSF backing bean + en Data klasse).

Men prøv og tyg dig gennem eksemplerne i den artikel jeg linkede til, så skulle det gerne begynde at hænge sammen.
Avatar billede tuidoi Nybegynder
05. marts 2009 - 13:39 #9
Mange tak for hjælpen - Lig et svar.
Avatar billede arne_v Ekspert
05. marts 2009 - 15:01 #10
svar
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