2010-06-30 7 views
2

J'ai une JSP dans une variable chaîne dans une servlet et je voudrais la compiler moi-même en JSP (à la volée, par programmation). En ce moment, ce que je fais est de sauver la chaîne dans un fichier et d'accéder à ce fichier (qui génère le servlet résultant) - quelque chose comme:Convertir par programmation un JSP contenu dans une chaîne

// and He created JSP from mere html code 
final String jsp = convertToJSP(someHTML); 
// create a jsp file with the above 
final File jspFile = new File(getServletContext().getRealPath("/"), jspFilename); 
// write it to a file FIXME: This must be expensive, the user is waiting 
// I DONT WANT TO WRITE THIS TO FILE: GENERATE SERVLET IMMEDIATELY FROM CODE 
FileUtils.writeStringToFile(jspFile, jsp, "UTF-8"); 
// access that jsp 
resp.sendRedirect(jspFilename); 

Ceci est évidemment coûteux et nécessite une opération IO. Des idées/suggestions sur la façon de faire cela?

Je comprends que je vais devoir utiliser/attacher Tomcat jasper (jspc) à un moment donné et je vais bien avec ça (Tomcat est mon conteneur de servlet).

Merci beaucoup, JP

Répondre

2

Vous pouvez jeter un oeil à la Jasper2 JSP Engine - voici comment Tomcat traduit à servlets JSPs.

+0

Oui, j'ai pensé autant - mais je ne pouvais pas trouver de code Java qui le fait. C'est toutes les tâches Ant qui appellent les classes JspC, Compiler, ADTCompiler - qui sont elles-mêmes un cauchemar à suivre. Je me demandais si quelqu'un avait déjà fait ce genre de chose auparavant, et si par conséquent du code, des pointeurs plus spécifiques pouvaient être fournis. – MalteseUnderdog

+0

parcourez l'API du compilateur Jasper - il peut être facile de commencer. – Bozho

Questions connexes