02. marts 2005 - 16:05Der er
15 kommentarer og 1 løsning
Indsætte noget kode
Hej Eksperter,
Jeg sidder og prøver at få bare en lille smule styr på min kode. Sagen er den at jeg har kodet noget som engenligt virker okay. Jeg kan bare se at jeg snart mister overblikket over det og det kunne jeg godt tænke mig at komme lidt i forekøbet derfor vil jeg gerne have lagt dele ud i nogle klasser for sig selv.
Jeg har altså en JSP side som alt efter om nogle sessionvariable er sat skal vise nogle ting.
På JSP siden har jeg skrevet
<%=new Niveau1().visNiveau1() %>
Men jeg får en fejl der siger illigal start of expression
Klassen Niveau1 ser således ud og jeg har også importeret pakken i toppen af min JSP side
package framework;
public class Niveau1 {
public String visVisniveau1() {
StringBuffer buffer = new StringBuffer(); buffer.append("try {");
buffer.append("Vector vi = new Vector();"); buffer.append("vi.addElement((String)session.getAttribute(\"userid\")");
buffer.append("ResultSet rs = d.select(\"SELECT p.id, p.gruppenavn from produktgrupper p, users_produktgrupper_rel up where up.user_id = ? and up.produktgrupper_id = p.id\", vi);");
Kan man ikke include en kodestump på en eller anden snedig måde. Det drejer sig om at jeg under nogle omstændigheder sætter nogle sessionvariable som jeg bruger til at teste hvad der skal vises. Problemet er bare at det efterhånden går hen og bliver lidt komplekst og koden på JSP siden bare vokser og vokser. Derfor ville det jo være fedt at få det delt lidt op
Den fejl du beskriver nederst i din indledende tekst er fordi du ikke kan skrive "new ..." inde i det expressiontag.
men men..
Du må følge nogle regler for at få det delt op: 1. Alt html skal enten ligge i html, jsp eller taglibs. Ikke i javakoden. Så lav nogle include jsp-sider til de ting du skal bruge på flere sider. 2. Lagdeling. 2a) Datalaget(model): Du skal have splittet din databaseaccess væk fra din view-del, som Arne også skriver. Lav en klasse der accesser databasen, og returnerer en liste (eks ArrayList). 2b) Controllerlaget(controller): Det er også en god ide, at holde ansvarsfordelingen klar. JSP-siden viser ting. Den kontrollerer ikke. Så lav en controller istedet i form af en servlet, og videregiv ansvaret til jsp siden når du har udført din java del. (Hvis du har en emailadresse skal jeg gerne sende dig et eksempel på hvordan det kunne se ud) 2c) Viewlaget (view): JSP-siden er din view del. JSP-siden skal have mulighed for at kompilere sig selv lige inden den eksekveres. Det kan ikke når den først bliver dannet i runtime øjeblikket, sådan som du har lavet det.
Jeg mener ikke du kan indlejre javakode i jsp, som igen er indlejret i javakode. Det kan du måske i nogle scriptsprog, men java skal kompileres.
jeg har et standard - og meget enkelt - webprojekt, med servlets, jsp mv, som du kan benytte med din tomcat-server
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.