gpt4 book ai didi

jsp - 如何直接在 JSP 页面中编写 Scala 脚本?

转载 作者:行者123 更新时间:2023-12-04 07:29:57 25 4
gpt4 key购买 nike

是否有任何 Scala JSP 引擎,或者将有任何引擎?
我知道 Scala Web 框架提升,但它似乎更像是标签。
我正在寻找一种编写像 PHP 这样的脚本的方法。

谢谢。

最佳答案

编辑:检查 http://scalate.fusesource.org/index.html :Scala 模板引擎:像 JSP 一样没有废话​​,但增加了 Scala 的酷炫。我只是在查看#scala 推特提要时偶然发现了这一点。

你可以看看http://github.com/alandipert/step .它看起来像是一个活跃的项目,足以让您编写与 xhtml 代码混合的 Scala 代码。你是否可以像 PHP 一样编写脚本,我不知道。不同之处之一是,对于 JSP/PHP,您在 HTML 页面中包含一个程序,与 step 一样。你包括一些 xml放入 Scala 文件。

使用 Scala 和 sbt 会有一些学习曲线。但我认为利用 Scala 是值得的。

您可以做的另一件事是编写一个自定义 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
}

}

关于jsp - 如何直接在 JSP 页面中编写 Scala 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com