16Scala
O VRaptor3 também suporta controllers escritos em Scala. As configurações necessárias e um exemplo são apresentados neste capítulo.
Dependências e Configuração
Os seguintes JARs precisam ser adicionados ao diretório WEB-INF/lib da sua aplicação:
- scala-library.jar (requerido, versão 2.8)
- vraptor-scala.jar (requerido)
- vraptor-scala-jsp.jar (opcional, para suporte ao uso de Expression Language sobre coleções do Scala na view)
- scalate.jar (requerido)
Feito isso, é preciso configurar o VRaptor para carregar os plugins. No web.xml, defina a seção context-param como abaixo:
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>br.com.caelum.vraptor.scala</param-value>
</context-param>
Também adicione ao arquivo as configurações necessárias para usar o Scalate como view:
<servlet>
<servlet-name>TemplateEngineServlet</servlet-name>
<servlet-class>org.fusesource.scalate.servlet.TemplateEngineServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TemplateEngineServlet</servlet-name>
<url-pattern>*.ssp</url-pattern>
</servlet-mapping>
Exemplo
Um controller do VRaptor3 escrito em Scala:
@Resource
class MeuController {
@Path(Array("/hello"))
def minhaLogica = "Hello, world!"
}