Jag har nyligen satt mig in i JSP, och har nu ett par basic-frågor om bönor.
- Ska jag kompilera mina Java-klasser som ska användas som bönor, och lägga .class-filerna i en speciell katalog?
- Ska Java-klasserna ärva, implementera från någon speciell klass/interface?
- Måste de ingå i något package, eller kan jag anropa dem med <jsp:useBean id="minBean" class="minBeanKlass" scope="page">?
Nu har jag äntligen lyckats få tummen ur och börjat pilla med bönor, dock fungerar det inte. Jag kör inte på en lokal Tomcat-server, utan på ett Webhotells, närmare bestämt space2u.com's.
Felmeddelandet lyder:
org.apache.jasper.JasperException: Unable to compile /usr/local/tomcat/work/www.command.nu/ROOT/JavaPortalen/index_1.java:56: Class JavaPortalen.Template not found.
Template template = null;
^
/usr/local/tomcat/work/www.command.nu/ROOT/JavaPortalen/index_1.java:59: Class JavaPortalen.Template not found.
template= (Template)
^
/usr/local/tomcat/work/www.command.nu/ROOT/JavaPortalen/index_1.java:64: Class JavaPortalen.Template not found.
template = (Template) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "Template");
^
3 errors
Tack för ditt svar, men hur kan jag registrera en web-app när jag inte kör lokalt? Jag har inte tillgång till configurationsfiler eller liknande, jue...
Vill du ärva egenskaper från en färdig klass till din böna är det ju bara att importera den klassen med tex:
Kod:
import java.lang.Float;
precis som i andra applicationer. Vill du skapa egna super- och subklasser till bönan kan du ju oxxå göra det.
Ville bara pepåka att "import" på inget sätt gör att man ärver från en klass. Det enda den gör är att utöka namnrymden så man slipper skriva ut "distinguished name" hela tiden.
Ärver gör man med "extends" om det skall vara en subklass eller med "implements" om det är ett interface.
/Lime
------------------
Praeterea conseo microsoftenem esse delendam.
- modernt latinskt ordspråk
Jag menade inte att man ärvde med import, utan att man är tvungen att "utöka namnrymden" om jag får använda dina egna ord, för att sedan kunna ärva från en redan befintlig klass. Gör du inte en import på klassen, då har du ju inte den tillgänlig heller. ;)
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
Om jag skapar en böna, kan jag på nåt sätt få flera instanser av den klassen - eller måste jag skapa nya bönor?
Som det är nu gör jag så här:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
<jsp:useBean id="minBona" scope="page" class="minKlass">
</jsp:useBean>
<jsp:useBean id="minBona2" scope="page" class="minKlass">
</jsp:useBean>
Det ser inte snyggt ut, kanske är det inte heller speciellt smart. Går det att komma förbi det, eller ska jag skapa ett eget package och importera det istället?