8
A
回答
5
编辑:检查http://scalate.fusesource.org/index.html:Scala的模板引擎:如JSP没有废话,但添加了斯卡拉凉意。我在检查#scala twitter feed时偶然发现了这个问题。
你可以看看http://github.com/alandipert/step。它看起来像一个活跃的项目,足以让你编写混合了xhtml代码的Scala代码。你是否可以这样的脚本如PHP,我不知道。其中一个区别是,使用JSP/PHP,您可以在HTML页面中包含一个程序,与step
一样,您可以将一些xml
包含到Scala文件中。
斯卡拉和sbt
会有一点学习曲线,但我认为这是值得利用斯卡拉。
您可以做的另一件事是编写一个自定义JSP标记,让您通过解释器运行一些Scala代码。我做了一个概念证明,这似乎工作:
/**
* 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
}
}
1
http://www.playframework.org/有一个scala模式。玩是非常铁路。可能适合你的需求。
3
相关问题
- 1. 如何使用JSP直接写入单独的HTML页面?
- 2. Scala编写的脚本
- 3. 如何在jsp页面中写入?
- 4. 如何防止从jsp页面的url直接访问页面
- 5. 在jsp页面上输出perl脚本
- 6. 拒绝直接访问jsp页面
- 7. 如何从HTML页面调用JSP中编写的函数?
- 8. 如何在JSP页面中包含JSP
- 9. 直接用PHP页面直接页面
- 10. 如何在Makefile中编写脚本?
- 11. 如何用Spring加载直接访问JSP页面?
- 12. 如何在JSP页面中包含JSP页面?
- 13. 如何使用脚本编写html页面以在node.js中进行响应?
- 14. JSP页面编码
- 15. 如何在Java脚本中写入页面DOm模型
- 16. JSP - 如何创建从jsp页面到另一个jsp页面的链接
- 17. 如何编写Ant脚本?
- 18. 如何编写ASP.NET脚本
- 19. 如何编写shell脚本?
- 20. 如何编写从XML RESTful Web服务接收数据的JSP页面?
- 21. 如何在jsp页面
- 22. 如何在C#中编写可编写脚本的集合
- 23. Jsp使用HTML标记在一个循环中编写脚本
- 24. 在gdb中编写脚本
- 25. 在Java中编写脚本?
- 26. 如何在npm脚本中编写多行脚本?
- 27. 如何在我的脚本中编写awk脚本?
- 28. 如何在Scala中编写Haskell-do-notation
- 29. 如何在Scala中编写'通用'mergesort?
- 30. 如何在scala中编写函数isSymbol?
Play通过scalate模块也支持Scalate模板:http://www.playframework.org/modules/scalate – 2010-03-30 17:08:34