Avatar billede metnet Nybegynder
03. februar 2003 - 18:02 Der er 6 kommentarer og
1 løsning

jsp, beans og servlets

følgende fejl opstår når jeg kører sitet i explorer.
Jeg anvender resin som webserver og kan ikke gennemskue om conf filen er sat rigtigt op - min servlet og bønnerne kompilere fint og uden fejl.
********************************************************
Note: sun.tools.javac.Main has been deprecated.
/Metnet Portal/Portalen_Nylle/OpretForm1_Retry.jsp:19: Class _metnet_220portal._portalen_0nylle.FormBeanOpretVirksomhed
not found.
FormBeanOpretVirksomhed fbov =
^
/Metnet Portal/Portalen_Nylle/OpretForm1_Retry.jsp:20: Class _metnet_220portal._portalen_0nylle.FormBeanOpretVirksomhed
not found.
(FormBeanOpretVirksomhed) session.getAttribute("f_beanObj");
^
***********************************************************

Min "servlet" ser således ud:
***********************************************************import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
//import Portalen_Nylle_Classes.*;

import Portalen_Nylle_Classes.FormBeanOpretKontaktPersonVirk;
import Portalen_Nylle_Classes.FormBeanOpretVirksomhed;
import Portalen_Nylle_Classes.DBConnFirmaBean;


public class FrontControlServlet extends HttpServlet
{           
        //Denne metode kaldes når Servletten hentes første gang
        public void init(ServletConfig conf) throws ServletException
        {
            //Kald til superklassens init metode   
            super.init(conf);                                                       
        }
       
        // Denne metode kaldes for at håndtere alle HTTP GET Requests
        protected void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException
        {
            // Opret et context objekt sc med oplysninger om webserver m.m.;
            ServletContext sc = getServletContext();   
           
            RequestDispatcher rd;
            String action = req.getParameter("action");
           
            HttpSession session = req.getSession(true);
           
            //Det første tjek der udføres fra URL'en; http://localhost:8080/servlet/FrontControlServlet
            if(action==null || action.equals(""))
            {
                rd = sc.getRequestDispatcher("/Metnet Portal/Portalen_Nylle/Index.jsp");
                rd.forward(req, res);
            }           
            else
            {   
            /*---Benyttes ikke mere idet der linkes direkte til opretsiden fra TopMenuFramen!!!   
                //Der tjekkes på om det "gemte" inputfelt (fra Velkommen.html) rent faktisk har en
                //værdi f.eks. "opret1". Er dette tilfældet forwardes der til "OpretForm1.htm" siden
                //hvor brugeren kan oprette et firma
                if (action.equals("opret1"))
                {
                    rd = sc.getRequestDispatcher("/Metnet Portal/Portalen_Nylle/OpretForm1.htm");
                    rd.forward(req, res);
                }
            ---*/
               
                //Hvis brugeren kommer fra enten OpretForm1.htm    eller OpretForm1_Retry siden udføres
                //kodeblokken i if-sætningen       
                if (action.equals("opret2"))
                {                           
                    //Opretter et beanobjekt hvor vi ønsker at sætte alle attributterne for firma
                    FormBeanOpretVirksomhed fbov = new FormBeanOpretVirksomhed();
***********************************************************

Min jsp side ser således ud:
***********************************************************
<%
FormBeanOpretVirksomhed fbov =
(FormBeanOpretVirksomhed) session.getAttribute("f_beanObj");


FormBeanOpretKontaktPersonVirk fbokpv =
(FormBeanOpretKontaktPersonVirk) session.getAttribute("kpv_beanObj");
%>
**********************************************************

Jeg er yderst desparat og ønsker meget gerne et hurtigt svar - derfor de mange point.
Avatar billede arne_v Ekspert
03. februar 2003 - 18:16 #1
Resin får compilet fra .jsp til .java, men kan ikke
compile fra .java til .class, fordi den ikke kan
finde FormBeanOpretVirksomhed.
Avatar billede arne_v Ekspert
03. februar 2003 - 18:17 #2
2 muligheder for fejl:

1)  Du har ikke en import i din .jsp fil.
2)  FormBeanOpretVirksomhed er ikke i web-app'en.
Avatar billede arne_v Ekspert
03. februar 2003 - 18:27 #3
Import i .jsp er f.eks.:

<%@ page import="java.util.*,java.io.*"%>
Avatar billede arne_v Ekspert
03. februar 2003 - 18:43 #4
I dit tilfælde skal det jo nok være:

<%@ page import="Portalen_Nylle_Classes.*%>
Avatar billede disky Nybegynder
03. februar 2003 - 20:03 #5
Du kan bibeholde det du har nu, så mangler du en import, eller du kan udnytte at JSP kan gøre arbejdet for dig via:

<jsp:useBean id="fbov" scope="session" class="FormBeanOpretKontaktPersonVirk" />
<jsp:useBean id="fbokpv" scope="session" class="FormBeanOpretKontaktPersonVirk" />

Hvis du på den JSP side har en form, kan du også helt automatisk få sat de variabler i dine klasser som har set metode via:

<jsp:setProperty name="fbov" property="*"/>
<jsp:setProperty name="fbokpv" property="*"/>

Med denne løsning slipper du for at have import's og alle de andre ting, man kan lige så godt udnytte jsp's system til det.

Værdien som 'scope' blive sat til kan være:
request        er kun i live imens siden hentes
page            er i live sålænge brugeren er på siden
session        er i live sålænge brugerens session eksisterer
application    afhængig af servere, men kan være for evigt, eller indtil serveren rebootes

Så hvis du vil hente dine klasse fra session stacken, og sætte parametere i fobv klassen ser din jsp side sådanne ud:

<jsp:useBean id="fbov" scope="session" class="FormBeanOpretKontaktPersonVirk" />
<jsp:setProperty name="fbov" property="*"/>
<jsp:useBean id="fbokpv" scope="session" class="FormBeanOpretKontaktPersonVirk" />

<%
//Her var din java kode før
%>

<!-- Her er der plads til din HTML -->
Avatar billede metnet Nybegynder
05. februar 2003 - 11:09 #6
Mange tak for hjælpen arne v og den hurtige respons - en dum fejl jeg har set mig blind på - godt med nogle andre øjne.
100 fra mig til dig.

Til disky vil jeg sige, at jeg har tidligere forsøgt mig med introspection/reflektion uden held i mit system da formens data bliver valideret i en bønne og igennem et mellemliggende lag nemlig en frontcontrolservlet - men tusinde tak for hjælpen alligevel.

hilsen Nylle
Avatar billede disky Nybegynder
05. februar 2003 - 12:37 #7
Hvis du bruger en servlet som controller, hvorfor så overhovedet havde kode på din JSP side ?

Have ren html på dine jsp/html sider, alle form poster direkte til din controller servlet som ud fra parameterne giver arbejdet videre til de korrekte bønner, und so weiter.

Ingen kode på jsp siderne, hvilket iforvejen er en dårlig vane.
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