Есть ли какой-либо scala JSP механизм или там будет кем-либо? я знаю о scala веб-лифте платформы, но он больше походит на теги. я ищу способ написать сценарий как PHP.
спасибо.
Редактировать: чек http://scalate.fusesource.org/index.html : Scala Template Engine: как JSP без дерьма, но с Добавлена Scala Cool azy . Я просто наткнулся на это во время проверки корма #scala Twitter.
Вы можете взглянуть на http://github.com/alandipert/step . Он выглядит как активный проект с достаточно, чтобы позволить вам написать Scala Code, смешанный с XHTML-кодом. Могу ли вы скрипт, как PHP , я не знаю. Одно из разных состоит в том, что с JSP / PHP вы включаете программу внутри HTML-страницы, где как с помощью Step
, вы включаете некоторые XML
в Scala файл.
Здесь будет немного кривой обучения со скальдой и SBT
, но я думаю, что это стоит воспользоваться преимуществами Scala.
Другая вещь, которую вы можете сделать, это написать пользовательский тег JSP, который позволяет запустить несколько Scala Code через интерпретатор. Я сделал доказательство концепции, и это, кажется, работает:
/**
* 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/ имеет режим Scala. Игра - это очень рельсы-иш. Может удовлетворить ваши потребности.
Scalate - это шаблонизатор на основе Scala, который позволяет использовать мощные выражения Scala вместо ограниченного языка выражений JSP / JSF / JSTL EL - в то время как полностью статически типизированы, поэтому шаблоны проверяются на наличие ошибок во время редактирования / компиляции.
Шаблоны Scaml в Scalate позволяют писать действительно СУХИЕ шаблоны, которые особенно хороши для XML / HTML (поклонники Rails склонны любить Haml, а Scaml - это порт Haml на Scala).
Хотя, если вам нравится стиль шаблонов JSP, вам, вероятно, лучше начать с шаблонов Ssp в Scalate, которые похожи на JSP.