संपादित करें: जांच http://scalate.fusesource.org/index.html: स्काला खाका इंजन: बकवास बिना JSP तरह लेकिन जोड़ा स्काला ठंडक साथ। # स्काला ट्विटर फ़ीड की जांच करते समय मैंने बस इस पर ठोकर खाई।
आप http://github.com/alandipert/step पर एक नज़र डाल सकते हैं। यह एक सक्रिय प्रोजेक्ट की तरह दिखता है जो आपको एक्सएचटीएमएल कोड के साथ मिश्रित स्कैला कोड लिखने के लिए पर्याप्त है। चाहे आप स्क्रिप्ट जैसे PHP कर सकते हैं, मुझे नहीं पता। अंतर में से एक यह है कि जेएसपी/PHP के साथ, आप एक HTML पृष्ठ के अंदर एक प्रोग्राम शामिल करते हैं, जहां step
के साथ आप स्काला फ़ाइल में कुछ xml
शामिल करते हैं।
स्कैला और sbt
के साथ एक सीखने की वक्र होने वाला है, लेकिन मुझे लगता है कि स्कैला का लाभ उठाने के लिए यह उचित है।
दूसरी चीज जो आप कर सकते हैं वह एक कस्टम जेएसपी टैग लिखना है जो आपको दुभाषिया के माध्यम से कुछ स्कैला कोड चलाने देता है। मैं अवधारणा का एक सबूत था और यह काम करने के लिए लगता है:
/**
* 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/modules/scalate –