11Componentes utilitários opcionais
Registrando um componente opcional
O VRaptor possui alguns componentes opcionais, que estão no pacote br.com.caelum.vraptor.util. Para registrá-los você pode adicionar seus pacotes no web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>
br.com.caelum.vraptor.util.um.pacote,
br.com.caelum.vraptor.util.outro.pacote
</param-value>
</context-param>
ou você pode criar um custom provider:
-
Crie uma classe filha do Provider que você está usando:
package br.com.nomedaempresa.nomedoprojeto; public class CustomProvider extends SpringProvider { }
- Registre essa classe como provider no web.xml:
<context-param> <param-name>br.com.caelum.vraptor.provider</param-name> <param-value>br.com.nomedaempresa.nomedoprojeto.CustomProvider</param-value> </context-param>
-
Sobrescreva o método registerCustomComponents e adicione os componentes opcionais:
package br.com.nomedaempresa.nomedoprojeto; public class CustomProvider extends SpringProvider { @Override protected void registerCustomComponents(ComponentRegistry registry) { registry.register(ComponenteOpcional.class, ComponenteOpcional.class); } }
Componentes opcionais disponíveis
Converters Localizados
Existem alguns converters para números que são localizados, ou seja, que consideram o Locale atual para converter os parâmetros. Você pode registrá-los adicionando o pacote br.com.caelum.vraptor.converter.l10n no seu web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>
br.com.caelum.vraptor.util.outros.pacotes...,
br.com.caelum.vraptor.converter.l10n
</param-value>
</context-param>
Instanciador de Parâmetros: IOGI x OGNL
O VRaptor utiliza por padrão o IOGI para injetar os parâmetros nos objetos. Se você preverir é possível usar o OGNL, bastando remover o jar do IOGI e adicionar os jars do OGNL.
Integração com ExtJS
Existe uma View do VRaptor que consegue gerar alguns formatos de JSON que o ExtJS espera. Para isso use:
result.use(ExtJSJson.class).....serialize();
Registrando um plugin automaticamente
Para registrar um plugin automaticamente, basta adicionar o arquivo META-INF/br.com.caelum.vraptor.packages dentro do jar, contendo os pacotes do plugin separados por vírgulas. O registro dos pacotes é feito recursivamente.
Integração JPA e Hibernate
Há três projetos externos ao VRaptor para integração persistência. Para cada um deles, basta adicionar o jar no classpath que o suporte será ativado automaticamente sem a necessidade de registrar os componentes.
- vraptor-jpa, para suporte a JPA
- vraptor-hibernate, para suporte ao Hibernate 3
- vraptor-plugin-hibernate4, para suporte ao Hibernate 4
O projeto vraptor-jpa é disponibilizado sem nenhum provider. Então para usá-lo você precisa incluir o provider de sua preferência.
Para usar o Hibernate como provider:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
</dependency>
Para usar o Eclipselink como provider:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
</dependency>