SlideShare uma empresa Scribd logo
Introdução ao vRaptor
vRaptor - motivação
Pontos fortes:
● Framework brasileiro;
● Documentação em português;
● Aprendizagem fácil;
● Convenções ao invés de XML;
● Mais liberdade;
● Facilita muito o trabalho de web designers.
Pontos fracos:
● Maior conhecimento em HTML/CSS/Javascript;
vRaptor - convenções
● Arquivos JSP devem estar sempre em /WEB-INF/jsp.
● Classes controladoras devem ter seu nome
terminando com “Controller”, e anotadas com
@Resource.
vRaptor - convenções
Cuidado:
● Não existe problema em ter Controllers em outros
pacotes, desde que não existam classes com o mesmo
nome.
vRaptor - convenções
● Arquivos JSP referentes a determinado controlador
devem estar em uma pasta com o seu nome(estilo
lowerCamelCase, e excluindo a palavra “Controller”), dentro
de /WEB-INF/jsp .
vRaptor - convenções
● O nome do arquivo JSP precisa ser igual ao nome do
método no controlador.
● A URL de acesso fica no formato
domínio/contexto/controlador/método
● No caso acima:
localhost:8080/minhaApp/produto/novo
vRaptor - convenções
● Métodos podem retornar objetos, que ficam
disponibilizados na JSP através da EL. O nome do
parâmetro é gerado conforme o tipo de retorno.
→ public String retorno(){...} = ${string}
→ public Integer retorno(){...} = ${integer}
→ public Produto visualiza(){...} = ${produto}
→ public List<Produto> retorno(){...} = ${produtoList}
vRaptor - convenções
● Podemos alterar a URI padrão gerada para
determinado método com a anotação @Path.
Agora, a URI fica /produto/novo e não mais /produto/adiciona
● Nos controladores, métodos públicos e sem nenhuma
anotação são considerados métodos Get (mesmo sentido
do doGet no Servlet).
vRaptor - convenções
● Quando queremos que determinado método trate de
um Post, devemos anotá-lo com @Post .
● Podemos receber parâmetros em nossos métodos de
lógica. Mas...como?
vRaptor - convenções
● Podemos receber parâmetros via URL e injetá-los nos
objetos recebidos no método.
→ Ao chamar /clientes/9 , o objeto cliente terá o
atributo id setado com o valor 9.
vRaptor - prática
● Criar um projeto com vRaptor, baseado no projeto
em branco disponibilizado, testando as principais
funcionalidades.
Pode ser utilizado o exemplo da calculadora.
vRaptor – um pouco de IoC
● Antes de prosseguir, vamos ver um pouco sobre
Inversão de Controle e Injeção de Dependências.
● No vRaptor, as dependências necessárias podem ser
recebidas no construtor do controlador.
● Mas o que é Inversão de Controle e Injeção de
Dependências?
Inversão de Controle
● A Inversão de Controle é um padrão de
desenvolvimento onde se inverte o fluxo normal de
programação, delegando a responsabilidade sobre
algumas partes do código para alguns frameworks ao
invés de criarmos toda a sequência.
● Supomos um exemplo:
→ Temos um controlador que salva produtos. Para salvar
produtos precisamos de um ProdutoDao. Normalmente
faríamos no construtor do controlador algo como
this.produtoDao = new ProdutoDao();
Mas, e se um dia ProdutoDao necessitar de algum parâmetro
no seu construtor? Teremos de alterar o código do controlador.
Qual é o problema?
Inversão de Controle
● O problema é que o controlador sabe demais. Foi
delegada a ele a responsabilidade de criar um
ProdutoDao, gerando um acoplamento muito grande
entre as duas classes.
● Não seria melhor deixar que algum framework crie
um ProdutoDao e somente recebermos uma instância
para chamar seus métodos?
● Isso é Injeção de Dependências!!
Inversão de Controle
● ProdutoController depende de um ProdutoDao, mas
não é sua responsabilidade criá-lo. Então, um
framework externo cria ProdutoDao e injeta em
ProdutoController.
● Você não deve buscar aquilo que deseja acessar, mas
tudo o que deseja acessar deve ser fornecido para
você.
● Só pra lembrar: Inversão de Controle é um padrão
de desenvolvimento, e Injeção de Dependências é
uma maneira de resolver/implementar a Inversão de
Controle.
Voltando ao vRaptor – o objeto Result
● O vRaptor disponibiliza um objeto para trabalhar com
alguns recursos relacionados à View, como por
exemplo redirecionar, serializar objetos e adicionar
parâmetros para a JSP.
● Este objeto, chamado Result, pode ser injetado nos
controladores através do construtor.
vRaptor – o objeto Result
● O Result pode redirecionar o fluxo para outra lógica
de outro controlador.
● O Result pode modificar a view padrão, retornando
JSON, XML, Status HTTP ao invés de JSP.
vRaptor – o objeto Result
● O Result pode adicionar objetos no request,
tornando-os acessíveis na JSP.
● O Result pode redirecionar o fluxo caso ocorra uma
Exception.

Mais conteúdo relacionado

Mais procurados

BDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + JavaBDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + Java
Cesar Augusto Nogueira
 
Groovy grails
Groovy grailsGroovy grails
Groovy grails
Lucas Aquiles
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
Emmanuel Neri
 
Oficina groovy grails - infoway
Oficina  groovy grails - infowayOficina  groovy grails - infoway
Oficina groovy grails - infoway
Lucas Aquiles
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Edlaine Zamora
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
Campus Party Brasil
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2
William Felipe
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
Jorge Ávila Miranda
 
Putting a-heat-with-thermostat
Putting a-heat-with-thermostatPutting a-heat-with-thermostat
Putting a-heat-with-thermostat
Ricardo Martinelli de Oliveira
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
Gustavo Lopes
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
Laís Lima
 
Entendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkEntendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend Framework
Gedvan Dias
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
PHP Day Curitiba
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHP
Adler Medrado
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
Diego Tremper
 
Grails
GrailsGrails
Grails
Alex Guido
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Edlaine Zamora
 
Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2
Flávio Lisboa
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
Eduardo Mendes
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
Edgar Dantas
 

Mais procurados (20)

BDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + JavaBDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + Java
 
Groovy grails
Groovy grailsGroovy grails
Groovy grails
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Oficina groovy grails - infoway
Oficina  groovy grails - infowayOficina  groovy grails - infoway
Oficina groovy grails - infoway
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
Putting a-heat-with-thermostat
Putting a-heat-with-thermostatPutting a-heat-with-thermostat
Putting a-heat-with-thermostat
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Entendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkEntendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend Framework
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHP
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Grails
GrailsGrails
Grails
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
 

Destaque

VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
Yelken Heckman Ferreira Gonzales
 
CDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptorCDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptor
Caelum
 
Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28
Valdinho Pereira
 
Vraptor 3
Vraptor 3Vraptor 3
Vraptor 3
Cristiano Agosti
 
Palestra VRaptor 3
Palestra VRaptor 3Palestra VRaptor 3
Palestra VRaptor 3
Romero Meireles
 
Framework MVC - vRaptor
Framework MVC - vRaptorFramework MVC - vRaptor
Framework MVC - vRaptor
Édipo Souza
 
Introducing dwr (direct web remoting)
Introducing dwr (direct web remoting)Introducing dwr (direct web remoting)
Introducing dwr (direct web remoting)
Ashish Boobun
 
Apresentação sobre VRaptor na Campus Recife 2014
Apresentação sobre VRaptor na Campus Recife 2014Apresentação sobre VRaptor na Campus Recife 2014
Apresentação sobre VRaptor na Campus Recife 2014
Yelken Heckman Ferreira Gonzales
 
Apresentação VRaptor 3
Apresentação VRaptor 3Apresentação VRaptor 3
Apresentação VRaptor 3
Alabê Duarte
 
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
Carlos A. Junior Spohr Poletto
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
Frederico Maia Arantes
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Caelum
 
VRaptor - Ciclo CASIN 2011
VRaptor - Ciclo CASIN 2011VRaptor - Ciclo CASIN 2011
VRaptor - Ciclo CASIN 2011
Daniel Kist
 

Destaque (13)

VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
 
CDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptorCDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptor
 
Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28
 
Vraptor 3
Vraptor 3Vraptor 3
Vraptor 3
 
Palestra VRaptor 3
Palestra VRaptor 3Palestra VRaptor 3
Palestra VRaptor 3
 
Framework MVC - vRaptor
Framework MVC - vRaptorFramework MVC - vRaptor
Framework MVC - vRaptor
 
Introducing dwr (direct web remoting)
Introducing dwr (direct web remoting)Introducing dwr (direct web remoting)
Introducing dwr (direct web remoting)
 
Apresentação sobre VRaptor na Campus Recife 2014
Apresentação sobre VRaptor na Campus Recife 2014Apresentação sobre VRaptor na Campus Recife 2014
Apresentação sobre VRaptor na Campus Recife 2014
 
Apresentação VRaptor 3
Apresentação VRaptor 3Apresentação VRaptor 3
Apresentação VRaptor 3
 
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
 
VRaptor - Ciclo CASIN 2011
VRaptor - Ciclo CASIN 2011VRaptor - Ciclo CASIN 2011
VRaptor - Ciclo CASIN 2011
 

Semelhante a Introdução ao vraptor

Apres s3
Apres s3 Apres s3
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
Alexandre Tarifa
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
guestea329c
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento web
Valdir Junior
 
Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
Campus Party Brasil
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
Pedro Sousa
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
Rodrigo Marconato
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
Andre Baltieri
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
André Luiz Forchesatto
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
Moacir Casemiro Gomes Filho
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
fabioginzel
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
Rodolfo Fadino Junior
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
ledsifes
 
Gradle spring-hateoas-Lombok
Gradle spring-hateoas-LombokGradle spring-hateoas-Lombok
Gradle spring-hateoas-Lombok
DanielChristofolli
 
Java web
Java webJava web
Java web
clauvane1708
 
Grails
GrailsGrails
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Vinicius Pulgatti
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
André Luiz Forchesatto
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
Maurício Linhares
 
Django
DjangoDjango

Semelhante a Introdução ao vraptor (20)

Apres s3
Apres s3 Apres s3
Apres s3
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento web
 
Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Gradle spring-hateoas-Lombok
Gradle spring-hateoas-LombokGradle spring-hateoas-Lombok
Gradle spring-hateoas-Lombok
 
Java web
Java webJava web
Java web
 
Grails
GrailsGrails
Grails
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
Django
DjangoDjango
Django
 

Último

Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
HisrelBlog
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
Eró Cunha
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
beatrizsilva525654
 
Slide de biologia aula2 2 bimestre no ano de 2024
Slide de biologia aula2  2 bimestre no ano de 2024Slide de biologia aula2  2 bimestre no ano de 2024
Slide de biologia aula2 2 bimestre no ano de 2024
vinibolado86
 
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
ProfessoraTatianaT
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
JoeteCarvalho
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
LeticiaRochaCupaiol
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
LILIANPRESTESSCUDELE
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
Zenir Carmen Bez Trombeta
 
karl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vidakarl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vida
KleginaldoPaz2
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
todorokillmepls
 
As sequências didáticas: práticas educativas
As sequências didáticas: práticas educativasAs sequências didáticas: práticas educativas
As sequências didáticas: práticas educativas
rloureiro1
 
GÊNERO TEXTUAL - POEMA.pptx
GÊNERO      TEXTUAL     -     POEMA.pptxGÊNERO      TEXTUAL     -     POEMA.pptx
GÊNERO TEXTUAL - POEMA.pptx
Marlene Cunhada
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
eaiprofpolly
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...
ANDRÉA FERREIRA
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 

Último (20)

Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
 
Slide de biologia aula2 2 bimestre no ano de 2024
Slide de biologia aula2  2 bimestre no ano de 2024Slide de biologia aula2  2 bimestre no ano de 2024
Slide de biologia aula2 2 bimestre no ano de 2024
 
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
 
karl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vidakarl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vida
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
 
As sequências didáticas: práticas educativas
As sequências didáticas: práticas educativasAs sequências didáticas: práticas educativas
As sequências didáticas: práticas educativas
 
GÊNERO TEXTUAL - POEMA.pptx
GÊNERO      TEXTUAL     -     POEMA.pptxGÊNERO      TEXTUAL     -     POEMA.pptx
GÊNERO TEXTUAL - POEMA.pptx
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 

Introdução ao vraptor

  • 2. vRaptor - motivação Pontos fortes: ● Framework brasileiro; ● Documentação em português; ● Aprendizagem fácil; ● Convenções ao invés de XML; ● Mais liberdade; ● Facilita muito o trabalho de web designers. Pontos fracos: ● Maior conhecimento em HTML/CSS/Javascript;
  • 3. vRaptor - convenções ● Arquivos JSP devem estar sempre em /WEB-INF/jsp. ● Classes controladoras devem ter seu nome terminando com “Controller”, e anotadas com @Resource.
  • 4. vRaptor - convenções Cuidado: ● Não existe problema em ter Controllers em outros pacotes, desde que não existam classes com o mesmo nome.
  • 5. vRaptor - convenções ● Arquivos JSP referentes a determinado controlador devem estar em uma pasta com o seu nome(estilo lowerCamelCase, e excluindo a palavra “Controller”), dentro de /WEB-INF/jsp .
  • 6. vRaptor - convenções ● O nome do arquivo JSP precisa ser igual ao nome do método no controlador. ● A URL de acesso fica no formato domínio/contexto/controlador/método ● No caso acima: localhost:8080/minhaApp/produto/novo
  • 7. vRaptor - convenções ● Métodos podem retornar objetos, que ficam disponibilizados na JSP através da EL. O nome do parâmetro é gerado conforme o tipo de retorno. → public String retorno(){...} = ${string} → public Integer retorno(){...} = ${integer} → public Produto visualiza(){...} = ${produto} → public List<Produto> retorno(){...} = ${produtoList}
  • 8. vRaptor - convenções ● Podemos alterar a URI padrão gerada para determinado método com a anotação @Path. Agora, a URI fica /produto/novo e não mais /produto/adiciona ● Nos controladores, métodos públicos e sem nenhuma anotação são considerados métodos Get (mesmo sentido do doGet no Servlet).
  • 9. vRaptor - convenções ● Quando queremos que determinado método trate de um Post, devemos anotá-lo com @Post . ● Podemos receber parâmetros em nossos métodos de lógica. Mas...como?
  • 10. vRaptor - convenções ● Podemos receber parâmetros via URL e injetá-los nos objetos recebidos no método. → Ao chamar /clientes/9 , o objeto cliente terá o atributo id setado com o valor 9.
  • 11. vRaptor - prática ● Criar um projeto com vRaptor, baseado no projeto em branco disponibilizado, testando as principais funcionalidades. Pode ser utilizado o exemplo da calculadora.
  • 12. vRaptor – um pouco de IoC ● Antes de prosseguir, vamos ver um pouco sobre Inversão de Controle e Injeção de Dependências. ● No vRaptor, as dependências necessárias podem ser recebidas no construtor do controlador. ● Mas o que é Inversão de Controle e Injeção de Dependências?
  • 13. Inversão de Controle ● A Inversão de Controle é um padrão de desenvolvimento onde se inverte o fluxo normal de programação, delegando a responsabilidade sobre algumas partes do código para alguns frameworks ao invés de criarmos toda a sequência. ● Supomos um exemplo: → Temos um controlador que salva produtos. Para salvar produtos precisamos de um ProdutoDao. Normalmente faríamos no construtor do controlador algo como this.produtoDao = new ProdutoDao(); Mas, e se um dia ProdutoDao necessitar de algum parâmetro no seu construtor? Teremos de alterar o código do controlador. Qual é o problema?
  • 14. Inversão de Controle ● O problema é que o controlador sabe demais. Foi delegada a ele a responsabilidade de criar um ProdutoDao, gerando um acoplamento muito grande entre as duas classes. ● Não seria melhor deixar que algum framework crie um ProdutoDao e somente recebermos uma instância para chamar seus métodos? ● Isso é Injeção de Dependências!!
  • 15. Inversão de Controle ● ProdutoController depende de um ProdutoDao, mas não é sua responsabilidade criá-lo. Então, um framework externo cria ProdutoDao e injeta em ProdutoController. ● Você não deve buscar aquilo que deseja acessar, mas tudo o que deseja acessar deve ser fornecido para você. ● Só pra lembrar: Inversão de Controle é um padrão de desenvolvimento, e Injeção de Dependências é uma maneira de resolver/implementar a Inversão de Controle.
  • 16. Voltando ao vRaptor – o objeto Result ● O vRaptor disponibiliza um objeto para trabalhar com alguns recursos relacionados à View, como por exemplo redirecionar, serializar objetos e adicionar parâmetros para a JSP. ● Este objeto, chamado Result, pode ser injetado nos controladores através do construtor.
  • 17. vRaptor – o objeto Result ● O Result pode redirecionar o fluxo para outra lógica de outro controlador. ● O Result pode modificar a view padrão, retornando JSON, XML, Status HTTP ao invés de JSP.
  • 18. vRaptor – o objeto Result ● O Result pode adicionar objetos no request, tornando-os acessíveis na JSP. ● O Result pode redirecionar o fluxo caso ocorra uma Exception.