# Einbindung von fremder Klasse über Skriplet



## MichiM (4. Jan 2008)

Hallo,


ist es möglich, eine Java-Klasse direkt über Code in einem JSP aufzurufen oder nur über

<jsp:directive.page import ...

?

Aktueller Versuch:


```
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        
    <h1>JSP Page</h1>
    
    <%!

                String[] argv = 
        
                {
                
                        "-b01.01.1980",
                        "-ut12.00",
                        "-house010.00,50.00,",
                        "-pa"
                 };

                himmelsdaten swt = new himmelsdaten();

                swt.main_start(argv);
        
       
    %>
    
    
    </body>
</html>
```


Beim Ausführen im Tomcat erscheint die folgende Fehlermeldung:



```
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 29 in the jsp file: /index.jsp
Generated servlet error:

...

<identifier> expected

swt.main_start(argv);
              ^
```

(Dach zeigt auf die Klammer vor argv)



Woran liegt das?


Gruß Michi


----------



## romzac (4. Jan 2008)

Bei mir habe ich festgestellt (Eclipse EE 3.3; Tomcat 6.0), dass die zu instanzierende Klasse unbedingt in einem Package ausser dem "default"-Package stehen muss;


```
Package.Klasse eineKlasse = new Klasse();
```


----------



## MichiM (5. Jan 2008)

Ok, mit import und Package gehts. :wink:

*Beispiel Für die Nachwelt:*

Die JSP:


```
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="testpackage.Testklasse" %> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
    
    <%! Testklasse tk = new Testklasse ( ); %>
    <%= tk.miez ( ) %>
    
    
    </body>
</html>
```

Die Testklasse im Package testpackage:


```
package testpackage;

public class Testklasse
{
    
    public Testklasse()
    {
    }
    
    public String miez ( )
    {
        return "Miez";
    }

}
```

Output im Browser:



> Miez


----------



## maki (5. Jan 2008)

> Ok, mit import und Package gehts. icon_wink.gif


Komisch, steht auch genau so in der Doku


----------



## MichiM (5. Jan 2008)

.
.
Man sollte Dokumentationen als potentielles Instrumentarium dogmatischer, geistiger Verführung nicht unreflektiert in ihrem Wahrheitsgehalt verabsolutieren.
Man läuft sonst Gefahr, Ideologien aufzusitzen.


----------

