Framework Struts 2                   Projeto Minha Casa Minha Vida                   Odilon Rauen Junior                  ...
AgendaIntrodução.O que é Struts?Histórico Struts.Histórico Struts 2.Alguns dos principais recursos.Projeto Minha Casa Minh...
Introdução Apresentar uma opção de solução, para os desenvolvedores java que estão definindo um arquitetura de um projeto ...
Contextualização Servlets JSP Tag Libs MVC MVC 2 Framework                   4
O que é Servlet? É uma classe Java que herda a capacidade e é executada em um servidor Web, pois, tem à sua disposição tod...
O que é JSP? Sua criação foi incentivada devido ao fato de ser difícil montar páginas HTML usando Servlet. Uma página JSP ...
O que são Tag Libs? É um conjunto tags customizadas que contêm códigos para serem usados na criação de páginas JSP. Elas b...
MVC (Model-View-Control) Model – O modelo pode ser entendido como a camada de domínio da aplicação, ou seja, as lógicas de...
MVC (Modelo 1) O modelo 1 é centrado em páginas JSP. A aplicação navega por várias páginas, sendo que qualquer uma dessas ...
MVC (Modelo 2) O modelo 2 implementa a arquitetura MVC. Existe um servlet controlador entre o browser cliente e as páginas...
O que é Framework? É um aplicação reutilizável e semi-completa que pode ser especializada para produzir aplicações persona...
O que Struts? É um software feito em Java de código fonte aberto que ajuda os desenvolvedores a construírem aplicações Web...
Histórico do Struts Desenvolvido por Craig R. McClanahan. Foi doado a fundação Apache, Maio de 2000. Lançado a versão 1.0 ...
Histórico do Struts 2 No evento JavaOne 2005 os desenvolvedores estavam discutindo o futuro do Struts, para suportar novas...
Principais Recursos Validação de entrada. Gerenciamento de navegação de página. Conversão de tipos. Internacionalização e ...
Arquitetura Resumida
Arquitetura As classes FilterDispatcher e Dispatcher são o coração do Struts 2, provêem o necessário à infra-estrutura par...
18
Como Struts 2 Funciona Primeiro o pedido vai para o Servlet container que é transmitido através de uma cadeia de filtros p...
Como Struts 2 Funciona (Cont.) Após o retorno da Action, o ActionInvocation é responsável por analisar se há um Result (JS...
Arquivos de Configuração                           21
Arquivo web.xml                  22
Arquivo struts.xml                     23
Exemplo Interface Action                           24
Exemplo classe ActionSupport                               25
Ações e Resultados Struts 2 usando Interceptadores resolve a maioria dos problemas comuns a vários projetos.   Ex: Tratame...
Temas e Templates Arquivo de configuração struts.properties   struts.ui.theme = simple | ajax Existem 4 tipos disponíveis....
Tags de Formulários                      28
Tag de Formulários (cont)<s:datetimepicker name="nomeVO.nomeCampo" label="Data Deposito"theme="ajax" displayFormat="dd/MM/...
Tag de Genéricas                   30
Binding Os campos do formulário podem ser reconstruídos como POJOS, sem necessidade de capturar os dados individualmente. ...
Exemplo de Binding                     32
Interceptor Permitem interceptar a invocação antes e após a Action ser executada. São plugáveis e podem ser ordenados. Mui...
Interceptor (Cont) Exemplo de utilidades   conversão de tipos   upload de arquivo   login   validação   preparação da pagi...
Tipos de Validação Uma aplicação robusta na Web deve garantir que a entrada de dados do usuário seja validada. Validadores...
Validação Disponíveis                        36
Documentação Oficial http://struts.apache.org/2.1.8/index.html Download                                             37
Caso de Sucesso Struts 2 Para explicar um framework novo no mercado, acredito que a melhor maneira é com projetos bem suce...
Minha Casa Minha Vida Programa habitacional do Governo Federal, Caixa Econômica e o Governo dos Estados. Subsídio no finan...
Fluxo Principal do Projeto Apresentação. Regras. Cadastro de titular. Cadastro de dependente. Tela confirmação. Relatório ...
41
42
43
44
45
46
47
48
49
Google Analytics (Cidades)                             50
Google Analytics (Cidades)                             51
Google Analytics (Países)                            52
Google Analytics (Países)                            53
Validação escolhida XML Justificativa   Para aumentar a produtividade, possibilidade de   dividir o trabalho. Algumas vali...
Campos Obrigatórios                      55
Arquivo nomeAction.destino-validations.xml                                         56
Sexo Obrigatório                   57
Tag Select e validação regex                               58
CPF inválido               59
Arquivo nomeAction.destino-validations.xml                                             60
Classe CPFValidator.java                           61
Arquivo configuração validators.xml                                      62
Conversão de Tipos No Brasil temos algumas particularidades como nossa data e moeda que são diferentes das demais. USA   d...
Conversão de Tipos (cont.)                             64
Conversão de Tipos (cont.) Arquivo: xwork.properties   java.util.Date=nomepacote.DateConverter   java.math.BigDecimal=nome...
Outros Recursos Nem todos puderam ser demonstrados. Interceptors:    ModelDriven, Prepare, Execute and Wait,File    Upload...
Relatório de Inscritos                         68
Conclusão Principais Benefícios:    Alta produtividade e baixa curva de aprendizado.    Desenvolvimento com equipe e tempo...
BibliografiaSite:  http://struts.apache.org/2.x/docs/home.htm                                          70
Dúvidasodilon.rauen@uol.com.br                          71
Sobre o autor: Odilon Rauen JuniorGraduado em Bacharelado em Análise de Sistemas pela PUC-PR,(Pontifícia Universidade Cató...
Framework struts2v2.5
Upcoming SlideShare
Loading in...5
×

Framework struts2v2.5

559
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
559
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Framework struts2v2.5

  1. 1. Framework Struts 2 Projeto Minha Casa Minha Vida Odilon Rauen Junior odilon.rauen@uol.com.brData: 08/10/2009
  2. 2. AgendaIntrodução.O que é Struts?Histórico Struts.Histórico Struts 2.Alguns dos principais recursos.Projeto Minha Casa Minha Vida.Recursos utilizados no projeto.Bibliografia. 2
  3. 3. Introdução Apresentar uma opção de solução, para os desenvolvedores java que estão definindo um arquitetura de um projeto Web. Mostrar um caso de sucesso utilizando a tecnologia Struts 2, assim como, alguns recursos utilizados no projeto. 3
  4. 4. Contextualização Servlets JSP Tag Libs MVC MVC 2 Framework 4
  5. 5. O que é Servlet? É uma classe Java que herda a capacidade e é executada em um servidor Web, pois, tem à sua disposição todo o poder da plataforma Java. Recebe requisições de clientes, processa dados e geralmente envia conteúdo dinâmico HTML ou XML como resposta. 5
  6. 6. O que é JSP? Sua criação foi incentivada devido ao fato de ser difícil montar páginas HTML usando Servlet. Uma página JSP nada mais é do que uma página HTML contendo tags interpretadas por um compilador que transforma a página HTML em um Servlet automaticamente. O principal objetivo é facilitar ainda mais o desenvolvimento de aplicações WEB em Java. 6
  7. 7. O que são Tag Libs? É um conjunto tags customizadas que contêm códigos para serem usados na criação de páginas JSP. Elas basicamente são usadas para que páginas JSP sejam escritas de uma maneira que procedimentos comuns não precisem ser escritos em scriplets (código java, misturado com JSP/HTML). A maioria das bibliotecas de tags estão contidas em arquivos JAR para facilitar a instalação das aplicações Web. 7
  8. 8. MVC (Model-View-Control) Model – O modelo pode ser entendido como a camada de domínio da aplicação, ou seja, as lógicas de negócio, acesso e persistência de dados, etc. View – A visão é responsável por renderizar o modelo. Em aplicações Web, é o código HTML e os códigos usados para inserir dados dinâmicos na página(JSP). Controller – O controlador processa e responde a eventos, geralmente ações do usuário e, como conseqüência obtém alterações no modelo e atualiza a camada visão. 8
  9. 9. MVC (Modelo 1) O modelo 1 é centrado em páginas JSP. A aplicação navega por várias páginas, sendo que qualquer uma dessas páginas pode acessar um JavaBean que realiza as operações comerciais. Vantagem: Facilidade de desenvolvimento. Desvantagem : Não existe separação entre o trabalho do designer e do desenvolvedor. Também é difícil de manter e reutilizar. 9
  10. 10. MVC (Modelo 2) O modelo 2 implementa a arquitetura MVC. Existe um servlet controlador entre o browser cliente e as páginas JSP/Servlets. Vantagens: Maior facilidade de manutenção e reutilização. Desvantagens: É mais difícil de implementar que o modelo 1. 10
  11. 11. O que é Framework? É um aplicação reutilizável e semi-completa que pode ser especializada para produzir aplicações personalizadas. Uma caixa de ferramentas para os desenvolvedores, que podem ser utilizadas em vários projetos. Um conjunto com várias soluções comum a muitos projetos. Exemplo: login, validação, segurança, etc. 11
  12. 12. O que Struts? É um software feito em Java de código fonte aberto que ajuda os desenvolvedores a construírem aplicações Web de maneira mais rápida. Do mesmo modo que os engenheiros da construção civil usam suportes para fornecer sustentação para uma obra, os desenvolvedores usam o Struts para suportar cada camada de uma aplicação comercial. 12
  13. 13. Histórico do Struts Desenvolvido por Craig R. McClanahan. Foi doado a fundação Apache, Maio de 2000. Lançado a versão 1.0 em Junho 2001. Logo se tornou, é ainda é o framework mais popular para desenvolver aplicações Web em Java. Site: http://struts.apache.org 13
  14. 14. Histórico do Struts 2 No evento JavaOne 2005 os desenvolvedores estavam discutindo o futuro do Struts, para suportar novas funcionalidades da Web (2.0). Após o lançamento do Struts, já existiram vários projetos concorrentes e até mesmo superiores, porém, nenhum conseguiu se tornar popular igual Struts. As equipes resolveram unir forças e surgiu o Struts 2 que na verdade não é uma extensão da primeira versão e sim a evolução do WebWork v2.2, rebatizado como Struts 2. Site:www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html 14
  15. 15. Principais Recursos Validação de entrada. Gerenciamento de navegação de página. Conversão de tipos. Internacionalização e gerenciamento de mensagens. Suporte AJAX. Linguagem de expressão OGNL. Interceptadores. Injeção de dependência. Temas pré-definidos. Baixo acoplamento e facilidade de integração.(Outros Frameworks) Plugins(Captcha, FreeMaker, XSLT, Upload e Download de arquivos. 15
  16. 16. Arquitetura Resumida
  17. 17. Arquitetura As classes FilterDispatcher e Dispatcher são o coração do Struts 2, provêem o necessário à infra-estrutura para processar as solicitações. No início as classes ConfigurationManager, ActionManager e ObjectFactory são carregadas. Fluxo de ações do FilterDispatcher: Serve conteúdo estático. Determina configuração da ação. Cria o contexto da aplicação. Cria o proxy da ação. Limpa o objeto ActionContext. 17
  18. 18. 18
  19. 19. Como Struts 2 Funciona Primeiro o pedido vai para o Servlet container que é transmitido através de uma cadeia de filtros padrões. FilterDispatcher é acionado que por sua vez consultará o ActionMapper para determinar se o pedido deve invocar uma ação. Caso positivo, o FilterDispatcher delega o controle ao ActionProxy. O ActionProxy consulta o framework ConfigurationManager (struts.xml). Próximo passo, cria um ActionInvocation que é responsável por invocar um Interceptor e redireciona para Action desejada. 19
  20. 20. Como Struts 2 Funciona (Cont.) Após o retorno da Action, o ActionInvocation é responsável por analisar se há um Result (JSP, template), mapeado no struts.xml. Caso positivo é então renderizado a tela (JSP, Template). Os Interceptors são executados em ordem inversa. Finalmente, a resposta retona através dos filtros configurados no web.xml. Passando pelo ActionContextCleanUP que limpara a Thread ActionContext. 20
  21. 21. Arquivos de Configuração 21
  22. 22. Arquivo web.xml 22
  23. 23. Arquivo struts.xml 23
  24. 24. Exemplo Interface Action 24
  25. 25. Exemplo classe ActionSupport 25
  26. 26. Ações e Resultados Struts 2 usando Interceptadores resolve a maioria dos problemas comuns a vários projetos. Ex: Tratamento de Erros. O desenvolvedor precisa apenas se preocupar com a regra negocial do seu projeto. Ex: Criando a Action e utilizando no retorno dos métodos uma String, que antes deve ser definida no struts.xml para mapear a ação e definir o tipo de resultado. 26
  27. 27. Temas e Templates Arquivo de configuração struts.properties struts.ui.theme = simple | ajax Existem 4 tipos disponíveis. simple ajax xhtml css_xhtml 27
  28. 28. Tags de Formulários 28
  29. 29. Tag de Formulários (cont)<s:datetimepicker name="nomeVO.nomeCampo" label="Data Deposito"theme="ajax" displayFormat="dd/MM/yyyy" required="true" /> 29
  30. 30. Tag de Genéricas 30
  31. 31. Binding Os campos do formulário podem ser reconstruídos como POJOS, sem necessidade de capturar os dados individualmente. Existem a opção de integração nativa com outro framework Spring, para usar injeção dependência. 31
  32. 32. Exemplo de Binding 32
  33. 33. Interceptor Permitem interceptar a invocação antes e após a Action ser executada. São plugáveis e podem ser ordenados. Muitos interceptadores prontos e úteis. Possibilidade criar um personalizado. 33
  34. 34. Interceptor (Cont) Exemplo de utilidades conversão de tipos upload de arquivo login validação preparação da pagina evitar submit duplicados 34
  35. 35. Tipos de Validação Uma aplicação robusta na Web deve garantir que a entrada de dados do usuário seja validada. Validadores embutidos no framework: XML Ajax Anotação Personalizada 35
  36. 36. Validação Disponíveis 36
  37. 37. Documentação Oficial http://struts.apache.org/2.1.8/index.html Download 37
  38. 38. Caso de Sucesso Struts 2 Para explicar um framework novo no mercado, acredito que a melhor maneira é com projetos bem sucedidos. Esse projeto levou 3 meses para ser desenvolvido, implantado e homologado. Foram utilizados alguns recursos da tecnologia que ajudaram muito no desenvolvimento. 38
  39. 39. Minha Casa Minha Vida Programa habitacional do Governo Federal, Caixa Econômica e o Governo dos Estados. Subsídio no financiamento de casas próprias para a população de baixa renda, com parcelas a partir de R$ 50,00. Site: www.minhacasaminhavida.gov.br 39
  40. 40. Fluxo Principal do Projeto Apresentação. Regras. Cadastro de titular. Cadastro de dependente. Tela confirmação. Relatório com número de protocolo. 40
  41. 41. 41
  42. 42. 42
  43. 43. 43
  44. 44. 44
  45. 45. 45
  46. 46. 46
  47. 47. 47
  48. 48. 48
  49. 49. 49
  50. 50. Google Analytics (Cidades) 50
  51. 51. Google Analytics (Cidades) 51
  52. 52. Google Analytics (Países) 52
  53. 53. Google Analytics (Países) 53
  54. 54. Validação escolhida XML Justificativa Para aumentar a produtividade, possibilidade de dividir o trabalho. Algumas validações do Projeto: Campos obrigatórios. CPF inválido. CPF como chave única. Valor renda máxima. 54
  55. 55. Campos Obrigatórios 55
  56. 56. Arquivo nomeAction.destino-validations.xml 56
  57. 57. Sexo Obrigatório 57
  58. 58. Tag Select e validação regex 58
  59. 59. CPF inválido 59
  60. 60. Arquivo nomeAction.destino-validations.xml 60
  61. 61. Classe CPFValidator.java 61
  62. 62. Arquivo configuração validators.xml 62
  63. 63. Conversão de Tipos No Brasil temos algumas particularidades como nossa data e moeda que são diferentes das demais. USA data: mm/dd/aaaa moeda: $ 1,000,000.50 Brasil data: dd/mm/aaaa moeda: R$ 1.000.000,50
  64. 64. Conversão de Tipos (cont.) 64
  65. 65. Conversão de Tipos (cont.) Arquivo: xwork.properties java.util.Date=nomepacote.DateConverter java.math.BigDecimal=nomepacote.BigDecimalConverter Arquivo nomeAction-conversion.properties pessoaVO.rendaPessoal=BigDecimalConverter pessoaVO.dataNascimento=DateConverter
  66. 66. Outros Recursos Nem todos puderam ser demonstrados. Interceptors: ModelDriven, Prepare, Execute and Wait,File Upload. Plugins JasperReports, JFreeChart, Captha. 67
  67. 67. Relatório de Inscritos 68
  68. 68. Conclusão Principais Benefícios: Alta produtividade e baixa curva de aprendizado. Desenvolvimento com equipe e tempo reduzido. Manutenção facilitada. Por ser uma aplicação Web, facilidade na atualização de versões. Superou em 100% as expectativas iniciais de público com mais de 100.000 inscrições. 69
  69. 69. BibliografiaSite: http://struts.apache.org/2.x/docs/home.htm 70
  70. 70. Dúvidasodilon.rauen@uol.com.br 71
  71. 71. Sobre o autor: Odilon Rauen JuniorGraduado em Bacharelado em Análise de Sistemas pela PUC-PR,(Pontifícia Universidade Católica do Paraná). (2000/2004)Pós-Graduado em Desenvolvimento Java pelo IF-MT (Instituto Federal deEducação Ciência e Tecnologia de Mato Grosso). (2007/2008)Trabalha com Java desde 2002, atualmente é Consultor Java na ÁbacoTecnologia Informação.Experiência de 3 anos como Instrutor Java/JEE. (2006/2009)Certificado SCJP 6.0 (2009), T3 SUN Microsystems(2009)Instrutor Oficial da SUN Microsystems (2009/2011). 72
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×