Avatar billede shadowdance Nybegynder
04. december 2004 - 17:54 Der er 15 kommentarer og
1 løsning

useBean vil ikke virke!

Jeg bliver ved med at få følgende fejlmeddelelse:

The value for the useBean class attribute RecipeBean.class is invalid.

Den opstår når jeg forsøger at instantiere klassen med

<jsp:useBean id="mybean" class="RecipeBean.class"/>

Jeg er temmelig sikker på, at bønnen overholder de specifikationer der er for beans. Ydermere, hvis jeg instantierer med

<%RecipeBean mybean = new RecipeBean();%>

så er der ikke noget problem. Hvad kan det skyldes???
Avatar billede arne_v Ekspert
04. december 2004 - 17:57 #1
<jsp:useBean id="mybean" class="RecipeBean"/>
Avatar billede arne_v Ekspert
04. december 2004 - 17:57 #2
Du skal ikke angive .class
Avatar billede shadowdance Nybegynder
04. december 2004 - 22:02 #3
Nej, det mente jeg faktisk heller ikke. Har prøvet begge dele. Samme fejl.
Avatar billede arne_v Ekspert
04. december 2004 - 22:05 #4
Hvis

<%
RecipeBean mybean = new RecipeBean();
%>

virker så børe

<jsp:useBean id="mybean" class="RecipeBean"/>

også virke.

(RecipeBean ligger vel i en package ikke ?)
Avatar billede shadowdance Nybegynder
05. december 2004 - 22:35 #5
Ja, det brude det vel. Men det gør det ikke. Nej, RecipeBean ligger ikke i en package. Er det et krav?
Avatar billede arne_v Ekspert
05. december 2004 - 22:39 #6
Beans der skal bruges fra en JSP side bør altid ligge i en package.

Så prøv lige at flyt den ned i en package.
Avatar billede arne_v Ekspert
05. december 2004 - 22:40 #7
package beans;
...

og

WEB-INF/classes/beans/RecipeBean.class

og

<jsp:useBean id="mybean" class="beans.RecipeBean"/>
Avatar billede shadowdance Nybegynder
05. december 2004 - 22:55 #8
Jo, den ligger faktisk i en pakke i forvejen, så. Jeg tænkte på en jar-fil, hvilket den ikke ligger i. Det virker stadig ikke...

Hvis man flytter meget rundt på klasser og den slags, registrerer Tomcat så ændringen med det samme, eller bør man lukke browser og/eller tomcat service ned, før man prøver igen?
Avatar billede arne_v Ekspert
05. december 2004 - 22:58 #9
Hvis man ændrer i class eller jar filer så skal du enten genstarte applikationen
eller hele serveren.

Det er kun JSP sider hvor ændringer automatisk detectes.

[Tomcat i standard opsætning !]
Avatar billede arne_v Ekspert
05. december 2004 - 23:05 #10
Hvis den ligger i en pakke har du så enten en page import eller pakke på
i useBean ?
Avatar billede shadowdance Nybegynder
05. december 2004 - 23:05 #11
Nå, men jeg bliver ved med at få samme fejl. Det er meget mystisk. Men er der iøvrigt nogen særlig fordel i at bruge beans, bortset fra scope-fordelen?
Avatar billede shadowdance Nybegynder
05. december 2004 - 23:09 #12
Ja, altså: denne kode virker ikke:
------------------------------------------------
<%@page import = "ostools.*" %>

<html>
<head>
<title>mytest</title>
</head>
<body>
<form name="form1" method="post" action="test.jsp">
  <input name="txtsearch" type="text" size="40">
  <input type="submit" name="Submit" value="OK">
</form>

<jsp:useBean id="rb" class="RecipeBean"/>

</body>
</html>
------------------------------------------------

Hvorimod denne virker:

------------------------------------------------

<%@page import = "ostools.*" %>

<html>
<head>
<title>mytest</title>
</head>
<body>
<form name="form1" method="post" action="test.jsp">
  <input name="txtsearch" type="text" size="40">
  <input type="submit" name="Submit" value="OK">
</form>

<%

RecipeBean rb = new RecipeBean();

%>

</body>
</html>
------------------------------------------------

Det er mig en total gåde hvordan det kan gå til. Kan man gemme objekter i session-variabler, og dermed opnå et scope der svarer til scope: session?
Avatar billede arne_v Ekspert
05. december 2004 - 23:20 #13
1) Det er nemt at sætte scope på med useBean's scope attribut

2) Blandt purister anses det for pænere at bruge tags end embedded kode
Avatar billede arne_v Ekspert
05. december 2004 - 23:22 #14
Hvilken fejl får du nu ?

Skud i tågen: har du prøvet at flytte useBean tagget op i toppen ?
Avatar billede arne_v Ekspert
05. december 2004 - 23:23 #15
Ja du kan sagtens manuelt gemme i sessionen i embedded kode.

<%
session.setAttribute("rb", rb);
%>
Avatar billede arne_v Ekspert
01. januar 2005 - 13:50 #16
OK ?
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