# JSP dynamisch aus einem objekt heraus erstellen



## oetzi (29. Mai 2007)

moin zusammen,
meine situation ist folgende und ich möchte weiterhin folgendes machen  :wink: 

ich bastel grad an nem webservice client rum. eigentlich nix großartiges.
links die navibar und rechts soll der entsprechende inhalt angezeigt werden.

jetzt möchte ich, bzw. es ist meine aufgabe, nicht die ganzen jsp seiten per hand aufbauen, sondern es soll anhand eines objektes dynamisch geschehen.

beispiel:
bei der registrieren.jsp habe ich objekt XYZ, welches folgende variablen enthält:
String vorname;
String nachname;
int PLZ;
...

jetzt müsste ich irgendwie erkennen können, welche variablen dieses objekt enthält, von welchem typ die sind und daraus dann die jsp aufbauen.

mhh, war das jetzt in ansätzen verständlich??


----------



## SlaterB (29. Mai 2007)

ist halbwegs verständlich, dann mach mal 

oder was ist deine Frage dazu?
da dürfte es jedenfalls kein Standardvorgehen zu geben,
alles von dir zu programmieren


----------



## oetzi (29. Mai 2007)

he he, ich wollte euch nicht nur die tolle idee mitteilen  :wink: 

aber die frage war sicherlich nicht klar ausgedrückt. also:

wie komme ich an die variablen eines objektes und deren typ dran?

so ne art object.getAttributs() stelle ich mir vor. habe schon einiges probiert (autovervollständigung ist doll  ) aber was vernümpftiges ist nicht bei rausgekommen...


----------



## WeirdAl (29. Mai 2007)

Also ich verstehs net so ganz 

Meinst du das Du, sobald zu deinem Objekt mit vorname,nachname,plz noch eine Email-Adresse hinzukommt, deine registrieren.jsp dynamisch ein Email-Adresse Feld anzeigen soll?

Cu
Alex


----------



## oetzi (29. Mai 2007)

mhh, das auch ^^

aber vom prinzip sollte es so sein, dass ich ein objekt habe, welches irgendwelche variablen/datentypen enthält, die ich aber nicht kenne. und aus diesem objekt möchte ich diese variablen/datentypen auslesen um so dann die jsp zu erstellen.


----------



## SlaterB (29. Mai 2007)

Reflection ist da das Stichword,

Class c = Klasse.class;
c.getDeclaredFields(); und vieles andere, siehe API/ google


----------



## pcuser (5. Jun 2007)

Die könntest die einzelnen Objekte in einer Collection speichern und dann mit einem Iterator die entsprechenden Attribute/Variablen abfragen,

Beispiel:

//Das ist die Klasse mit deinen erwähnten Attributen



```
public class Person{

private String name;
private String vorname;
...

//die Setterfunktion
public void setName(String NAME){
this.name = NAME; 
}
public void setVorname(String VORNAME){
this.vorname = VORNAME;
}
//die Getterfunktion
public  String getName(){
return name;
}
//die Getterfunktion
public  String getVorname(){
return vorname;
}
```


Die o.g. Beispielklasse wird mehrmals an anderer Stelle instantiiert und in einer Collection gespeichert so das du mehrere Personen in Form von Objekt zur Verfügung hast.
z.B.
//anlegen einer neune Collection mit einer Liste

```
Collection<Person> c = new ArrayList<Person>();


for(int i=0;i<10;i++){
Person p = new Person();
p.setName("Mueller");
p.setVorname("Max");
c.add(p);
}
//Jetzt hast du 10 Muellers die einzeln abgefragt werden können

Iterator i = c.iterator();
while(i.hasNext()){
Person tempPerson = new Person();
tempPerson = (Person)i.next();
System.out.println(tempPerson.getName()+" "+tempPerson.getVorname());
}
```

Ich hoffe es ist heilwegs verständlich. ;-)


----------



## oetzi (6. Jun 2007)

SlaterB hat gesagt.:
			
		

> Reflection ist da das Stichword,
> Class c = Klasse.class;
> c.getDeclaredFields(); und vieles andere, siehe API/ google



geilomat  genau damit geht es. sehr schön. muss mich jetzt zwar erstmal an dokumentationen begeben... aber danach werd ich das schleunigst einbauen

danke nochmal für die hilfe!


----------

