# jsp Beans benutzen



## Java-Freak (2. Aug 2010)

hallo
ich hab ein kleines problem
ich beschäftige mich nun seit sunden mit dem versuch in einem jsp-file jsp:useBean auf eine eigene JavaBean anzuwenden aber es geht nicht... ich wollte zum anfang erstmal nur ausprobieren aber es geht trotzdem nicht.. ich nutze tomcat 6 und habe folgende ordnerstuktur und dateien:

```
../webapps/ROOT/test:
-test.jsp 
-bean
  -test
    -beanTest.java
    -beanTest.class
```
test.jsp:

```
<html><body> 
<br />
<jsp:useBean id="now" class="java.util.Date" /> 
Heutiges Jahr ist <%= now.toString() %>   ==   ${now}.<!-- das geht ja -->
<br />
<jsp:useBean id="bean" class="bean.test.beanTest" />
<%= bean.getNumber() %>

</body></html>
```
beanTest.java

```
package bean.test;
public class beanTest {
  public int getNumber(int n){
    return n+1;
  }
}
```
der Server gibt eine fehlermeldungsseite aus die 
org.apache.jasper.JasperException: /test/test.jsp(17,0) The value for the useBean class attribute bean.test.beanTest is invalid.
das hier sagt...
nur verstehe ich nicht warum...ich habe schon alles mögliche ausprobiert aber komm einfach nicht drauf...vllt kann mir ja mal jemand der das schon oft gemacht hat sagen wo der fehler liegt...
danke


----------



## Final_Striker (2. Aug 2010)

Also ich kenne mich da jetzt nicht so aus, aber was mir aufgefallen ist: die Methode getNummer in der test.jsp hat bei dir keine Parameter aber in der beanTest Klasse schon.


----------



## Java-Freak (2. Aug 2010)

oh danke, hab ich wohl übersehen aber das ist nicht der fehler...ich habs geändert aber trotzdem gehts nicht...der stacktrace sagt ja das das attribut class nicht korrekt ist aber ich habe in diversen beispielen(Insel, Tomcat-Beispiele, diverse online-tutorials)geschaut und überall ist es so wie ichs gemacht hab, soweit ich nichts übersehen habe...aber danke


----------



## mvitz (2. Aug 2010)

deine Klassen müssen ins Verzeichnis

<WEB-APP>/WEB-INF/classes


----------



## Java-Freak (2. Aug 2010)

hm, verstehe nicht genau wie du meinst
so gehts auch nicht:

```
../webapps/ROOT/test:
-test.jsp 
-WEB-INF
  -classes
    -beanTest.java
    -beanTest.class
```
test.jsp:

```
<html><body> 
<br />
<jsp:useBean id="now" class="java.util.Date" /> 
Heutiges Jahr ist <%= now.toString() %>   ==   ${now}.<!-- das geht ja -->
<br />
<jsp:useBean id="bean" class="beanTest" />
<%= bean.getNumber(1) %>

</body></html>
```
beanTest.java(class)

```
public class beanTest {
  public int getNumber(int n){
    return n+1;
  }
}
```
ich weiß langsam echt nicht mehr weiter...


----------



## mvitz (2. Aug 2010)

1) Wieso muss deine Applikation ROOT heißen? Man sollte eigentlich den ROOT Context nicht benutzen.

2)Folgendes funktioniert bei mir:

```
<TOMCAT_HOME>/webapps/test
-test.jsp
-WEB-INF
  -web.xml
  -classes
    -de/mvitz/working/webapp/TestBean.class
```

web.xml
[XML]<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
</web-app>[/XML]

de.mvitz.working.webapp.TestBean.java

```
package de.mvitz.working.webapp;

public class TestBean {

    public int incrementNumber(int i) {
        return i + 1;
    }

}
```

test.jsp
[XML]<html>
    <body> 
        <br />
        <jsp:useBean id="now" class="java.util.Date" /> 
        Heutiges Jahr ist <%= now.toString() %>   ==   ${now}.<!-- das geht ja -->
        <br />
        <jsp:useBean id="bean" class="de.mvitz.working.webapp.TestBean" />
        <%= bean.incrementNumber(1) %>
    </body>
</html>[/XML]


----------



## Java-Freak (2. Aug 2010)

vielen vielen dank ich hab alles per copy&paste genau so gemacht wie du und es ging
danke, ich wär fast daran verzweifelt 
meine applikation muss nicht ROOT heißen, ein irrtum meinerseits...unter anderem deshalb hats nicht funktioniert


----------



## Java-Freak (2. Aug 2010)

edit: ich mach nen neuen thread auf, is auch ein neues thema ...


----------

