Esiste un motore scala JSP o ce ne saranno? Conosco lo sviluppo di scala web framework, ma sembra più un tag. sto cercando un modo di script come PHP.Come eseguire lo script scala direttamente nelle pagine JSP?
grazie.
Esiste un motore scala JSP o ce ne saranno? Conosco lo sviluppo di scala web framework, ma sembra più un tag. sto cercando un modo di script come PHP.Come eseguire lo script scala direttamente nelle pagine JSP?
grazie.
Edit: controllo http://scalate.fusesource.org/index.html: Scala Template Engine: come JSP, senza la schifezza, ma con l'aggiunta di Scala Coolness. Mi sono imbattuto in questo mentre controllava il feed #scala su Twitter.
Si può dare un'occhiata a http://github.com/alandipert/step. Sembra un progetto attivo con quel tanto che basta per farti scrivere il codice Scala mescolato con il codice xhtml. Se è possibile lo script come PHP, non lo so. Una delle differenze è che con JSP/PHP, si include un programma all'interno di una pagina HTML dove, come per lo step
, si include qualche xml
in un file Scala.
Ci sarà un po 'di una curva di apprendimento con Scala e sbt
ma penso che valga la pena di sfruttare Scala.
L'altra cosa che puoi fare è scrivere un tag JSP personalizzato che ti permetta di eseguire qualche codice Scala attraverso l'interprete. Ho fatto una prova di concetto e questo sembra funzionare:
/**
* Proof of concept, you can run Scala code in a JSP tag.
* Works with jetty and sbt.
*/
class ScalaScriptTag extends BodyTagSupport {
override def doAfterBody():Int = {
try {
val settings = new Settings(str => println(str))
// interpreter classloader does not seem to pick up classes from the parent
settings.classpath.value =
"lib_managed/compile/jsp-api-2.1-6.1.14.jar;" +
"lib_managed/compile/servlet-api-2.5-6.1.14.jar"
var i = new Interpreter(settings) {
override def parentClassLoader():ClassLoader = {
return Thread.currentThread().getContextClassLoader();
}
}
i.bind("pageContext", "javax.servlet.jsp.PageContext", pageContext)
val source = Source.fromString(getBodyContent.getString)
for (line <- source.getLines) { i.interpret(line) }
} catch {
case ioe: IOException =>
throw new JspException(ioe.getMessage())
}
Tag.SKIP_BODY
}
}
http://www.playframework.org/ ha una modalità di scala. Il gioco è molto rails-ish. Potrebbe soddisfare le tue esigenze.
Scalate è un motore di template basato Scala, che permette di utilizzare potenti espressioni Scala al posto del linguaggio delle espressioni JSP/JSF/JSTL EL limitato - pur essendo completamente a tipizzazione statica in modo che i modelli vengono controllati a scrivi/compila il tempo per gli errori.
I modelli Scaml in Scalate consentono di scrivere placche davvero DRY particolarmente adatte per XML/HTML (i fan di Rails tendono ad amare Haml e Scaml è il porto di Scala di Haml).
Anche se ti piace lo stile dei modelli JSP, probabilmente starai meglio con i modelli Ssp in Scalate che sono simili a JSP.
La riproduzione supporta anche modelli scalari BTW tramite il modulo scalare: http://www.playframework.org/modules/scalate –