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:

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!"

}