JSP: Verändertes Include (Text lesen)

Von: , Frage gestellt am Di, 20. Feb 2001

Hallo,

ich habe folgendes Problem.
Ich habe einen String, der dynamisch erzeugt wird. Dieser String enthält im Endeffekt Teile einer JSP (also auch JSP-Elemente, wie z.B. Tablibs, ...).
Unter PHP gibt es eine eval-Funktion die das "interpretierte" Ergebnis als String zurückliefert.
Unter JSP (Tomcat 3.2) habe ich nur ein include über das Context Objekt gefunden. Das hilft mir aber nicht, denn damit kann man nur Dateien "includen" (Keine dynamischen Strings).

Ich weiß, dass dies nicht gerade gut für die Performance ist, aber mich würde interessieren, ob es da trotzdem eine allgemeine (sprich für beliebige Servlet/JSP-Engines) Lösung gibt.

Beispiel:
<%
String foo = "Bar";
String jspCode = "Hallo <%= foo %>";

// Nun kommt der SpecialInclude
out.includeEval(jspCode);
%>
Ergebnis soll "Hallo Bar" sein.

Ich hoffe, dass ich mich einigermassen verständlich ausgedrückt habe.

Gruss,
Frank

2 Antworten zu dieser Frage

  1. Antwort von nach 2 Tagen hilfreich
    Re: JSP: Verändertes Include (Text lesen)

    Hallo Frank,

    mit der Klasse MessageFormat sollte so etwas gehen

    String x = "Hallo {0}";
    MessageFormat mf = new MessageFormat(x);

    String msg = mf.format("Bar");

    es stehen noch jede Menge Methode müßte im java.text.*;
    enthalten sein.

    m.f.g
    Thomas [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

    • Antwort von nach 5 Tagen hilfreich
      Re^2: JSP: Verändertes Include (Text lesen)

      Hallo Thomas,

      eins vorweg: Die Idee ist gut, aber für mich leider nicht so ganz brauchbar, denn der Platzhalter {0} soll bei meiner Problemstellung selber wieder JSP-Code enthalten, der bei der Ausgabe ausgewertet wird. Hallo Frank,

      mit der Klasse MessageFormat sollte so etwas gehen

      String x = "Hallo {0}";
      MessageFormat mf = new MessageFormat(x);

      String msg = mf.format("Bar");

      es stehen noch jede Menge Methode müßte im java.text.*;
      enthalten sein.
      Bei (quasi)statischen Meldungen ist das in Ordnung. Wenn aber "Bar" nun eine Methode ist, wobei der Name der Methode (hier zum Beispiel "Bar") aus einer Datenbank kommt, dann nützt mir das nicht so viel.
      Ich kann also erst zur Laufzeit entscheiden, was nun passieren soll. Genau das passiert bei einer JSP (wenn auch auf etwas anderer Ebene).

      Trotzdem vielen Dank für Deine Bemühungen.

      Gruss, Frank

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!