# Unsauberer Code.. (Properties-Objekt in JSP anzeigen)



## akimoon (7. Jul 2010)

Hallo,

ich arbeite nun erst seit kurzer Zeit mit JSPs und Servlets und habe zwar die Grundlagen verstanden, aber Code-mäßig sieht das alles noch sehr unsauber aus. 
Und zwar ist die Aufgabe, ein Properties-Objekt auszulesen, welches von einem Servlet in einer Session gespeichert wurde, und anschließend in der JSP anzuzeigen. Hierbei soll bei einigen Einträgen allerdings statt dem einfachen Wert der Property eine SelectBox mit möglichen Werten angezeigt werden.
Bisher löse ich das, indem ich einfach die Properties in einer while-Schleife durchgehe und überprüfe, ob der Key einem der Werte entspricht, die per SelectBox dargestellt werden sollen, und diese händisch erzeuge. Allerdings erscheint mir dies nicht wirklich sauber. 
Habt ihr irgendwelche Ideen und Vorschläge wie ich das besser lösen könnte?

Mein bisheriger Code:


```
<%
Properties properties = (Properties) request.getSession().getAttribute("properties");
Enumeration props = properties.propertyNames();
String key;
String value;
while (props.hasMoreElements()) {
      key = (String) props.nextElement();
      value = properties.getProperty(key);
%>

      <%if(key.equals("SelectBox1Key")){%>
          <select name="SelectBox1">
              <option value="1" <%= value.equals("1")?" selected ":""%>>Wert1</option>
              <option value="2" <%= value.equals("2")?" selected ":""%>>Wert2</option>
              <option value="3" <%= value.equals("3")?" selected ":""%>>Wert3</option>
          </select>
      <%}else{%>
           <input name="<%=key%>" value="<%=value%>" size="50">
      <%}%>
<%}%>
```


----------



## DerEisteeTrinker (9. Jul 2010)

Verzichte soweit wie möglich auf Scriptlets (<% %>). Ich würde mir an deiner Stelle ein Tag bauen, was das alles ausliest und im PageScope ablegt. Dann kannst du in der JSP mit "JSP Expression Language" darauf zugreifen


----------



## Nogothrim (9. Jul 2010)

die sauberste Variante wäre vermutlich statt uralt-JSP ;( JSF mit Facelets zu verwenden.


----------



## mvitz (9. Jul 2010)

Aber nur, wenn man ein Webframework nutzen möchte...


----------



## Deadalus (13. Jul 2010)

mvitz hat gesagt.:


> Aber nur, wenn man ein Webframework nutzen möchte...



Wenn man eine ersthafte Webanwendung schreiben möchte will man das!

Klar gehts ohne aber wenn man es richtig macht schreibt man sich dabei zwangsweuse doch sein eigenes Webframework und das Rad ist wirklich oft genug neu erfunden worden 

Also ich würde dir JSF 2.0 + PrimeFaces als Bibliothek empfehlen.


----------



## mvitz (13. Jul 2010)

Klar, gebe ich dir recht  Aber auch da gibt es WebFrameworks, für die man JSP verwenden kann. Ich finde nur, die Aussage JSP nicht mehr zu benutzen pauschal für falsch.

Der TO scheint ja erst am Anfang zu sein, und da ist es imho schon sinnvoll erstmal die Basics (und dazu gehören nunmal JSPs) zu verstehen.


----------

