Avatar billede mercutio Nybegynder
30. august 2001 - 12:38 Der er 16 kommentarer og
3 løsninger

Hvordan får jeg fat på min bean fra jsp filen?

Jeg har lavet en bean altså en class fil. Men hvor skal jeg lægge den i jakarte.tomcat for at jsp filen kan finde den. Og skal jeg lave det til en jar fil i stedet for? Lige nu får jeg fejlen.

org.apache.jasper.JasperException: Unable to compile class for JSPC:\\jakarta-tomcat-3.2.3\\work\\localhost_8080\\_0002ftemp_00032_0002ejsptemp2_jsp_4.java:16: Package DbHandlerBean not found in import.
import DbHandlerBean.*;
Avatar billede nute Nybegynder
30. august 2001 - 12:40 #1
har du importert/initialisert din bean på din side ?
Avatar billede disky Nybegynder
30. august 2001 - 12:42 #2
På din webserver skal der i rodden være en skuffe der hedder

web-inf under den en der hedder classes

altså

web-inf\\classes

derunder skal din packages ligge

så skriver du f.eks.

<jsp:useBean id=\"gb\" scope=\"request\" class=\"disky.guestbook.Guestbook\" />
<jsp:setProperty name=\"gb\" property=\"*\"/>
<jsp:useBean id=\"wf\" scope=\"request\" class=\"disky.guestbook.WhereField\" />
<jsp:setProperty name=\"wf\" property=\"*\"/>

I din jsp fil øverst, her loader jeg 2 beans, og sørger for at alle felter bliver sat automatisk.
Avatar billede senj Nybegynder
30. august 2001 - 12:44 #3
Fra din jsp side skal du skrive eks:

<jsp:useBean id=\"Leverandoer\" scope=\"session\" class=\"Leverandoer\"/> - for at kunne bruge bønnen.

Du tilgår klasserne som eks:

                <select name=\"produkt\">
                    <option value = \"\">Vælg Produkt</option>
<%                  if (reloadet && !lev_id.equals(\"nada\"))
                    {
                            produkter=Leverandoer.getProducts(lev_id);   
                            while (produkter.next())
                            {  %>
                                <option value = \"<%=produkter.getString(\"id\")%>\"><%=produkter.getString(\"name\")%> </option> 
<%                          }   
                    }
                    else
                    {  %>
                        <option value=\"\">Ingen</option><%
                    }  %>
                </select>

og sidst men ikke mindst skal du jo compilere din bønne før du kan bruge den!
Avatar billede mercutio Nybegynder
30. august 2001 - 12:48 #4
Ok nu kan den finde klassen men jeg får nogle underlige fejl kan i lige se hvad jeg gør forkert her?

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>

<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<%@ page import=\"java.sql.*,javax.sql.*,com.codestudio.sql.*,DbHandler\"%>
<%
        <jsp:useBean id=\"dbhandler\" class=\"DbHandler.class\" />
        boolean a = dbhandler.open();
   
        ResultSet rs = dbhandler.doQuery(\"Select * from ansatte\");
       
       
        ResultSetMetaData rsm = rs.getMetaData();
        while( rsm.next() )
        {       
        out.println(rsm.getString(\"adresse\"));
        }
        dbhandler.close();
   
%>
</body>
</html>
Avatar billede nute Nybegynder
30. august 2001 - 12:51 #5
flytt denne linje:

<jsp:useBean id=\"dbhandler\" class=\"DbHandler.class\" />

ut av dine <%,%> tags:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>

<jsp:useBean id=\"dbhandler\" class=\"DbHandler.class\" />
       
<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<%@ page import=\"java.sql.*,javax.sql.*,com.codestudio.sql.*,DbHandler\"%>
<%
        boolean a = dbhandler.open();
   
        ResultSet rs = dbhandler.doQuery(\"Select * from ansatte\");
       
       
        ResultSetMetaData rsm = rs.getMetaData();
        while( rsm.next() )
        {       
        out.println(rsm.getString(\"adresse\"));
        }
        dbhandler.close();
   
%>
</body>
</html>

Avatar billede mercutio Nybegynder
30. august 2001 - 12:56 #6
Er det selve min bean der er bøvl med så?

org.apache.jasper.JasperException: Unable to compile class for JSPC:\\jakarta-tomcat-3.2.3\\work\\localhost_8080\\_0002ftemp_00032_0002ejsptemp2_jsp_4.java:65: Invalid type expression.
                DbHandler.class dbhandler = null;
                        ^
C:\\jakarta-tomcat-3.2.3\\work\\localhost_8080\\_0002ftemp_00032_0002ejsptemp2_jsp_4.java:68: Invalid type expression.
                    dbhandler= (DbHandler.class)
                                        ^
C:\\jakarta-tomcat-3.2.3\\work\\localhost_8080\\_0002ftemp_00032_0002ejsptemp2_jsp_4.java:73: Invalid type expression.
                            dbhandler = (DbHandler.class) Beans.instantiate(this.getClass().getClassLoader(), \"DbHandler.class\");
                                                  ^
3 errors
Avatar billede senj Nybegynder
30. august 2001 - 12:57 #7
Husk at java er case sensitive!
Avatar billede nute Nybegynder
30. august 2001 - 12:58 #8
fjern .class fra ditt <jsp:usebean> tag:

<jsp:useBean id=\"dbhandler\" class=\"DbHandler\" />

/nute
Avatar billede mercutio Nybegynder
30. august 2001 - 12:58 #9
Det er ikke der fejlen er.... tror jeg ikke ihvertfald. Men hvad betyder den fejlmeddelelse?
Avatar billede mercutio Nybegynder
30. august 2001 - 13:16 #10
Så nu kommer den ihvertfald ned i databasen via bønne men kan nogen give en forklaring på det her?
1 Fritz Kadelle [B@5fcb47 [B@3b9fae [B@1abc69 [B@4792d4 FK Kok ja [B@78dc4c [B@470b0d 2 Nasse Natmad [B@26a1a7 [B@706da8 [B@3ef361 [B@5c98f3 NN Opvasker ja [B@3d9460 [B@5840cd 3 Iver Piver Leth [B@67fc9 [B@2f356f [B@2f8116 [B@43e82b IPL null ja [B@3f7b23 [B@2d7440 4 Børste Slamberg [B@2b349d [B@5d252d [B@b567c [B@5afbaf BS Chef ja [B@41c92b [B@7e4dee

Det er det jeg får ud via denne kode.

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>


       
<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<%@ page import=\"java.sql.*,javax.sql.*,com.codestudio.sql.*,DbHandler\"%>
<jsp:useBean id=\"dbhandler\" class=\"DbHandler\" />
<%
        boolean a = dbhandler.open();
   
        ResultSet rs = dbhandler.doQuery(\"Select * from ansatte\");
       
       
       
        ResultSetMetaData rsm = rs.getMetaData();
        while( rs.next() )
        {
        for( int i = 1; i <= rsm.getColumnCount(); i++ )
        {
          out.println(rs.getString(i));
        }
        }
        dbhandler.close();
   
%>
</body>
</html>
Avatar billede disky Nybegynder
30. august 2001 - 13:19 #11
Det du udskriver er åbenbart ikke kun String.

brug en getxxx hvor xxx passer til indholdet af den kolonne.

Forresten brug hellere navnet på kolonnen frem for dens nummer.

       
Avatar billede mercutio Nybegynder
30. august 2001 - 13:21 #12
I mysql databasen er det defineret som text det hele men i eks. adresse skriver jeg jo også et tal så funger det ikke eller hvad?
Avatar billede disky Nybegynder
30. august 2001 - 13:22 #13
Det er lidt mystisk.
Avatar billede kresten Nybegynder
30. august 2001 - 13:26 #14

Prøv at lav dit while loop om til

while( rs.next() ) {
  out.println(rs.getString(\"min_første_kolonne\") + \"<br>\");
}

.. hvad skriv den så?
Avatar billede mercutio Nybegynder
30. august 2001 - 13:27 #15
Nu har jeg prøvet at skifte dataene ud med rent text i databasen og det gør ingen forskel...
Avatar billede mercutio Nybegynder
30. august 2001 - 13:28 #16
Ok det viser sig at de tubler jeg har defineret som char og en længde vises korrekt med getString men de tubler der hedder text bliver noget krims krams.
Avatar billede mercutio Nybegynder
30. august 2001 - 14:19 #17
Hvordan får jeg så vist krims kramset rigtigt? =)
Avatar billede kresten Nybegynder
30. august 2001 - 14:23 #18
krims krams = [B@5c98f3 NN Opvasker ja

Ellers hvad?
Avatar billede mercutio Nybegynder
30. august 2001 - 15:42 #19
Jeg har fået styr på det. Men hvis i finder ud af hvad man skal hive en text variable ud af en mysql database med så skriv det lige. Tak for hjælpen endnu en gang alle sammen.
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