Enviar pesquisa
Carregar
Instalando e Utilizando o AppFuse
•
0 gostou
•
288 visualizações
elliando dias
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 41
Baixar agora
Baixar para ler offline
Recomendados
Thesis Presentation
Thesis Presentation
kntotas
Fasting-2
Fasting-2
yolyordam yolyordam
Test
Test
guest076c3db
Credit Guide
Credit Guide
Tony Geraghty
1janete Simone Zaira
1janete Simone Zaira
Nina
Folhas Secas
Folhas Secas
elizete.f
Belief
Belief
yolyordam yolyordam
Connected
Connected
Scott Le Duc
Recomendados
Thesis Presentation
Thesis Presentation
kntotas
Fasting-2
Fasting-2
yolyordam yolyordam
Test
Test
guest076c3db
Credit Guide
Credit Guide
Tony Geraghty
1janete Simone Zaira
1janete Simone Zaira
Nina
Folhas Secas
Folhas Secas
elizete.f
Belief
Belief
yolyordam yolyordam
Connected
Connected
Scott Le Duc
Sp1u3v
Sp1u3v
jotagil
Social media Tool for journalists
Social media Tool for journalists
Sungkyu Lee
que significa ser pobre
que significa ser pobre
conillet
Identifying & Integrating Digital Skill Sets into Media Organizations
Identifying & Integrating Digital Skill Sets into Media Organizations
Dan McCarthy
BUSCD 8: SxSW and Google Re-Brief
BUSCD 8: SxSW and Google Re-Brief
edward boches
Revenue Models & Legal Risks In 3 Screen Convergence Valuations
Revenue Models & Legal Risks In 3 Screen Convergence Valuations
James C. Roberts III
Şaşırırım
Şaşırırım
yolyordam yolyordam
Grid Utility Technology Drivers - Enabling New Business Models, Siggraph06
Grid Utility Technology Drivers - Enabling New Business Models, Siggraph06
Paul Kamp
Tevhid Nuru
Tevhid Nuru
yolyordam yolyordam
культура 18 века
культура 18 века
guest7e683c
Best Friend
Best Friend
SANDRY BAUTISTA
Mensajería SMS en el Sector Público
Mensajería SMS en el Sector Público
Oriol Ros i Mas
Peak10 Solution Stack
Peak10 Solution Stack
santiagocuellar1
sitNL 2014 welcome
sitNL 2014 welcome
Twan van den Broek
Social Identity Hierarchies
Social Identity Hierarchies
Dan McCarthy
BUSCD 10: Invent something
BUSCD 10: Invent something
edward boches
Tutorial poke-tool
Tutorial poke-tool
unifesptk
Php 07 Cakephp
Php 07 Cakephp
Regis Magalhães
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
elliando dias
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
Wandesson Soares
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
Manuel Lemos
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
Diego Tremper
Mais conteúdo relacionado
Destaque
Sp1u3v
Sp1u3v
jotagil
Social media Tool for journalists
Social media Tool for journalists
Sungkyu Lee
que significa ser pobre
que significa ser pobre
conillet
Identifying & Integrating Digital Skill Sets into Media Organizations
Identifying & Integrating Digital Skill Sets into Media Organizations
Dan McCarthy
BUSCD 8: SxSW and Google Re-Brief
BUSCD 8: SxSW and Google Re-Brief
edward boches
Revenue Models & Legal Risks In 3 Screen Convergence Valuations
Revenue Models & Legal Risks In 3 Screen Convergence Valuations
James C. Roberts III
Şaşırırım
Şaşırırım
yolyordam yolyordam
Grid Utility Technology Drivers - Enabling New Business Models, Siggraph06
Grid Utility Technology Drivers - Enabling New Business Models, Siggraph06
Paul Kamp
Tevhid Nuru
Tevhid Nuru
yolyordam yolyordam
культура 18 века
культура 18 века
guest7e683c
Best Friend
Best Friend
SANDRY BAUTISTA
Mensajería SMS en el Sector Público
Mensajería SMS en el Sector Público
Oriol Ros i Mas
Peak10 Solution Stack
Peak10 Solution Stack
santiagocuellar1
sitNL 2014 welcome
sitNL 2014 welcome
Twan van den Broek
Social Identity Hierarchies
Social Identity Hierarchies
Dan McCarthy
BUSCD 10: Invent something
BUSCD 10: Invent something
edward boches
Destaque
(16)
Sp1u3v
Sp1u3v
Social media Tool for journalists
Social media Tool for journalists
que significa ser pobre
que significa ser pobre
Identifying & Integrating Digital Skill Sets into Media Organizations
Identifying & Integrating Digital Skill Sets into Media Organizations
BUSCD 8: SxSW and Google Re-Brief
BUSCD 8: SxSW and Google Re-Brief
Revenue Models & Legal Risks In 3 Screen Convergence Valuations
Revenue Models & Legal Risks In 3 Screen Convergence Valuations
Şaşırırım
Şaşırırım
Grid Utility Technology Drivers - Enabling New Business Models, Siggraph06
Grid Utility Technology Drivers - Enabling New Business Models, Siggraph06
Tevhid Nuru
Tevhid Nuru
культура 18 века
культура 18 века
Best Friend
Best Friend
Mensajería SMS en el Sector Público
Mensajería SMS en el Sector Público
Peak10 Solution Stack
Peak10 Solution Stack
sitNL 2014 welcome
sitNL 2014 welcome
Social Identity Hierarchies
Social Identity Hierarchies
BUSCD 10: Invent something
BUSCD 10: Invent something
Semelhante a Instalando e Utilizando o AppFuse
Tutorial poke-tool
Tutorial poke-tool
unifesptk
Php 07 Cakephp
Php 07 Cakephp
Regis Magalhães
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
elliando dias
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
Wandesson Soares
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
Manuel Lemos
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
Diego Tremper
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
Sliedesharessbarbosa
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
Diego Tremper
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
Fabrízio Mello
Manual Nuxeo DM 5.4.2 para os profissionais da infomação
Manual Nuxeo DM 5.4.2 para os profissionais da infomação
Sérgio Lampert
Advanced live testing em tempo real
Advanced live testing em tempo real
iMasters
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Eliel Simoncelo
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primário
Carlos Melo
Aumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring Boot
Fernando Boaglio
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControl
Diego Tremper
Nossa experiência com TDD
Nossa experiência com TDD
Nelson Senna do Amaral
PHP FrameWARks - FISL
PHP FrameWARks - FISL
Marcio Albuquerque
Puppet overview
Puppet overview
Paulo Henrique Andrade Cardoso
Spring framework 2.5
Spring framework 2.5
Diego Pacheco
Semelhante a Instalando e Utilizando o AppFuse
(19)
Tutorial poke-tool
Tutorial poke-tool
Php 07 Cakephp
Php 07 Cakephp
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
Manual Nuxeo DM 5.4.2 para os profissionais da infomação
Manual Nuxeo DM 5.4.2 para os profissionais da infomação
Advanced live testing em tempo real
Advanced live testing em tempo real
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primário
Aumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring Boot
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControl
Nossa experiência com TDD
Nossa experiência com TDD
PHP FrameWARks - FISL
PHP FrameWARks - FISL
Puppet overview
Puppet overview
Spring framework 2.5
Spring framework 2.5
Mais de elliando dias
Clojurescript slides
Clojurescript slides
elliando dias
Why you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
elliando dias
Nomenclatura e peças de container
Nomenclatura e peças de container
elliando dias
Geometria Projetiva
Geometria Projetiva
elliando dias
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
Javascript Libraries
Javascript Libraries
elliando dias
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
Ragel talk
Ragel talk
elliando dias
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
Introdução ao Arduino
Introdução ao Arduino
elliando dias
Minicurso arduino
Minicurso arduino
elliando dias
Incanter Data Sorcery
Incanter Data Sorcery
elliando dias
Rango
Rango
elliando dias
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
elliando dias
Hadoop + Clojure
Hadoop + Clojure
elliando dias
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
Mais de elliando dias
(20)
Clojurescript slides
Clojurescript slides
Why you should be excited about ClojureScript
Why you should be excited about ClojureScript
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
Nomenclatura e peças de container
Nomenclatura e peças de container
Geometria Projetiva
Geometria Projetiva
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
Javascript Libraries
Javascript Libraries
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
Ragel talk
Ragel talk
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
Introdução ao Arduino
Introdução ao Arduino
Minicurso arduino
Minicurso arduino
Incanter Data Sorcery
Incanter Data Sorcery
Rango
Rango
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
Hadoop + Clojure
Hadoop + Clojure
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
Instalando e Utilizando o AppFuse
1.
Instalando e Utilizando o
AppFuse Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Renato Moraes de Sousa renatoms18@hotmail.com
2.
AppFuse
• Programas Necessários: 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 2
3.
Configurando Variáveis de
Ambiente • Entre nas propriedades do meu computador e vá para a aba avançado e clique no botão Variáveis de Ambiente. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 3
4.
Configurando Variáveis de
Ambiente • Deve-se criar 3 VAs: • ANT_HOME – Diretório onde esta instalado o ant • CATALINA_HOME - Diretório onde esta instalado o TomCat • JAVA_HOME - Diretório onde esta instalado o Java 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 4
5.
Configurando Variáveis de
Ambiente • Agora adicione a variável PATH: • %JAVA_HOME%bin;%ANT_HOME%bin;%CATALINA_HOME%bin 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 5
6.
AppFuse
• 1)Trocar os arquivos properties.xml, build.properties e colocar o JUnit na pasta lib do ant a) O JUnit.jar geralmente é encontrado no eclipse, pois este é um framework de teste que geralmente vem no plugin do eclipse. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 6
7.
AppFuse
b) Colocar na lib do ant. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 7
8.
AppFuse
• c)Trocar o ip, senha e login do Banco de Dados!!!!!! • Pasta-> appfuseproperties.xml 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 8
9.
AppFuse
• Passos no Prompt do DOS • 2) Path de onde esta o appfuse e digite “ant new” 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 9
10.
Appfuse
Escolha um nome para sua Base de Dados Escolha um nome para seu package Escolha o framework a ser utilizado no nosso caso o Spring 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 10
11.
Appfuse •
3) Voltar um nível para usar o ant setup (obs: agora a imagem está mostrando outro projeto que foi criado) Passos no DOS. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 11
12.
AppFuse
• 3.1) entrar na pasta do novo projeto (ex. cd portinari) 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 12
13.
AppFuse •
3.2) Executar ant setup 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 13
14.
AppFuse
• 3) Existem duas maneiras de fazer, a primeira forma segue abaixo! • >ant setup -Djsp.precompile=true;tstart;tlog ->(este cmd constrói a aplicação, testa o tomcat e gera um log!) • 3.1) A segunda forma de fazer segue abaixo! • > ant setup ->(constrói a aplicação) 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 14
15.
AppFuse •
4) importar para o eclipse a aplicação criada. Buscando do seu path onde foi criado. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 15
16.
AppFuse •
Abra o browser e digite: http://localhost:8080/<nome_da_aplicação>.Este é o exemplo puzzlestyle 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 16
17.
Appfuse
• Para configurar o ant no eclipse vá em window/preferences clique em ant e Runtime. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 17
18.
Appfuse
• Selecione Ant Home Entires(Default) e aperte o botão add External Jars. Selecione os JARs que estão na pasta lib do ant que VOCÊ INSTALOU e escolha open. Confirme e reinicie o eclipse 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 18
19.
Appfuse •
Estrutura de diretórios usando o spring: • Pacotes build são as classes compiladas. • Pacotes src são as classes do codigo fonte. • Pacotes test são as classes de teste unitário. • A pasta extras contem componentes que o appfuse adicionou para facilitar a utilização do mesmo. • Na pasta lib ficam todas as bibliotecas que serão utilizadas no projeto. • Na pasta web estão as paginas jsp, alguns arquivos de configuração, scripts entre outros. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 19
20.
Adicionando um pojo
• Crie uma classe no pacote org.appfuse.model dentro do src/dao, ela deve extender o BaseObject do appfuse. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 20
21.
Adicionando um pojo
• Construa a classe e mapeie com o XDoclet 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 21
22.
Adicionando um pojo
• Para mais informações sobre configuração via xdoclet entre no site http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html • Alguns exemplos: /** * @hibernate.property column=quot;codigoquot; not-null=quot;falsequot; length=quot;10quot; */ • Mapeando atributo/coluna /** * @hibernate.class table=quot;contaquot; */ • Mapeando classe/tabela /** * @hibernate.id column=quot;produto_idquot; generator-class=quot;incrementquot; unsaved-value=quot;nullquot; */ • Mapeando atributo/coluna que incrementa automaticamente /** * @hibernate.many-to-one column=quot;fk_agencia_idquot; not-null=quot;falsequot; */ • Mapeando muitos para um 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 22
23.
Adicionando um pojo
• Adicione o build.xml dentro do extras/appgen a tela de visualização do ant no eclipse 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 23
24.
Adicionando um pojo
• Execute o install-detailed • Em seguida ira aparecer uma tela perguntando se as classes serão criadas a partir de um pojo ou uma tabela, escreva pojo e aperte ok • Depois aparecerá outra tela perguntando o nome do pojo. Digite o nome e aperte ok • Aparecerá mais uma tela mas não a trataremos. Logo aperte ok sem digitar nada. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 24
25.
Adicionando um pojo
• Agora selecione seu projeto e aperte F5, note que irão aparecer algumas classes compostas pelo nome do seu pojo em alguns pacotes como o Dao, o service ... • Adicione ao applicationContext-hibernate.xml o caminho do pojo mais o nome seguido de .hbm.xml 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 25
26.
Adicionando um pojo
• Apague a linha <property name=quot;validatorquot; ref=quot;beanValidatorquot;/> no action-servlet.xml do bean com o nome = “nomeDoPojoFormController”. • Execute o setup do projeto este irá criar o banco de acordo com o mapeamento. • Agora é só entrar no site do projeto e conferir as paginas que foram criadas para apresentação dos objetos e cadastro 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 26
27.
Appfuse
• Toda vez que for executado o setup do build do projeto serão apagados todos os valores contidos nas tabelas do banco, porem as colunas e as tabelas não serão apagadas e sim modificadas. Ex: caso seja criada uma tabela com nome pessoa e posteriormente mude para cliente e execute o setup, no banco terá uma tabela pessoa e outra cliente. A tabela pessoa deve ser apagada manualmente. • O install-detailed do build do appgen sempre cria classes pro Dao, pro service, pra web e as paginas. Caso já existam outras com o mesmo nome, elas serão apagadas e geradas outras de acordo com o padrão do appfuse. • É recomendável antes de utilizar setup do build do projeto, executar o clean e o undeploy no mesmo build. Caso de um erro imprevisível execute os dois também. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 27
28.
Appfuse
• Quando for feita alguma alteração na parte web do projeto, pode-se executar o deploy-web. Ele é muito mais rápido que o deploy comum e geralmente não precisa reiniciar o tomcat para visualizar na pagina. • Caso queira inserir dados que sempre serão carregados no banco(pois todas as vezes que se executa o setup os dados são apagados) pode-se alterar o sample-data.xml na pasta metadata/sql ele é um xml que contem dados básicos ou para teste, inserir os dados é só seguir os que já existirem lá. • Caso queria inserir os dados existentes no saple-data.xml sem executar o setup é so executar o db-load 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 28
29.
Appfuse
• A pasta lib contem muitas bibliotecas que foram incorporadas pelo appfuse e podem ser utilizadas no projeto. • Como a dwr utilizada para implementar ajax nas paginas. • Junit utilizada para realizar testes no projeto. • Displaytag uma das tags mais usadas pelo appfuse, esta quando recebe uma lista apresenta tabelas muito versáteis e de fácil utilização nos jsps. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 29
30.
Appfuse
• O seu projeto é baseado em outras bibliotecas ai existentes (ou seja se elas saírem daí vão fazer um estrago danado!) como hibernate, spring, a propria displaytag... • Para inserir uma nova biblioteca basta colocá-la nessa pasta e em seguida alterar o arquivo lib.properties 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 30
31.
Appfuse
• A pasta web contem muitas informações que serão muito úteis para o projeto. • Nela estão todas as paginas inclusive as de erro. • Esta o mapeamento de paginas e controladores. • Imagens utilizadas no projeto • Scripts que o appfuse adotou. • Decoradores, arquivos .css • Etc 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 31
32.
Appfuse
• Na pasta common da pasta web, estão jsps que estão inclusos em todas as paginas (comuns a todos) como o cabeçalho, o rodapé e o menu. • Nesta pasta tambem esta o jsp que inclui todas as taglibs existentes no projeto. Esse jsp é inserido pelo appfuse quando ele gera automaticamente uma pagina. Caso não seja gerado adicione esta tag com o comando no inicio do jsp:<%@ include file=quot;/common/taglibs.jspquot;%> • Com ela pode-se usar a core do Java, a display tag, tags de SQL e de internacionalização e caso queira criar uma tag basta criar uma classe Java no pacote src/web taglib extendendo tagSupport que ela estará incluída nesse jsp. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 32
33.
Appfuse
• Na pasta decorators tem apenas o default.jsp. Ele é responsável por adicionar os scripts e os arquivos .css. Caso queira adicionar mais algum basta colocar nesse jsp. • Na pasta pages, estão as paginas que serão utilizadas no projeto. • Com o crescimento do projeto tende a crescer muito essa pasta. • O padrão utilizado pelo appfuse é xxxList.jsp para apresentar todos os objetos de um certo tipo. E xxxForm.jsp para cadastro de um novo, edição de um já existente, nessa edição que ele pode ser deletado. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 33
34.
Appfuse
• Na pasta scripts estão os arquivos de javascript. Têm muitos arquivos úteis para a apresentação do projeto. • Um deles é o calendar.js ele facilita a entrada de dados tipo data, de uma forma bem intuitiva para o usuário. Reduzindo possibilidades de falha na coleta desses dados. • Outros são o prototype.js e o scriptaculous.js eles tem scripts que facilitam a programação em javascript e alem disso têm ferramentas para a utilização de ajax, como o objeto Ajax.Updater do prototype e o Ajax.Autocompleter do scriptaculous. Essas ferramentas são altamente recomendadas pois agilizam no processo de inserção de dados e dão uma aparência desktop para o projeto. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 34
35.
Appfuse
• Na pasta styles estão os arquivos .css basicos e uns estilos que podem ser escolhidos. • Com a alteração de um arquivo desses pode-se mudar completamente a visualização da pagina sem precisar alterar o jsp. • Na pasta WEB-INF estão basicamente arquivos de configuração. • No arquivo action-servlet.xml está o mapeamento das paginas e controladores, que é melhor explicado na próxima figura. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 35
36.
Appfuse
Contem o endereço nomeProjeto/editProduto.html No action-servlet este endereço esta mapeado assim: <prop key=quot;/editProduto.htmlquot;>produtoFormController</prop> No action-servlet o bean produtoFormController está assim: <bean id=quot;produtoFormControllerquot; class=quot;org.appfuse.webapp.action.ProdutoFormControllerquot; autowire=quot;byNamequot;> <!--<property name=quot;validatorquot; ref=quot;beanValidatorquot;/>--> <property name=quot;formViewquot; value=quot;produtoFormquot;/> <property name=quot;successViewquot; value=quot;redirect:produtos.htmlquot;/> </bean> Classe que controla a pagina 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 36
37.
Appfuse
• O arquivo dwr.xml é onde deve-se declarar as classes para usar Ajax. • Declarando um objeto Produto, ele poderá ser utilizado em javascrip e seus metodos. <allow> <convert converter=quot;beanquot; match=quot;org.appfuse.model.*quot; /> <create creator=quot;springquot; javascript=quot;DwrManagerquot;> <param name=quot;beanNamequot; value=quot;dwrManagerquot;/> </create> </allow> • Este é um exemplo de objeto adicionado, em javascript poderá ser utilizado o objeto DwrManger e todos os seus metodos como: DwrManager.incluirFase(idTabela, orc, _resposta); 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 37
38.
Appfuse
• No arquivo menu-config.xml será configurado a disposição do menu, como abas e sub-abas <Menu name=quot;FileUploadquot; title=quot;menu.selectFilequot; description=quot;File Uploadquot; width=quot;100quot; page=quot;/selectFile.htmlquot; roles=quot;admin,userquot;/> • É um menu sem sub intens <Menu name=quot;AdminMenuquot; title=quot;menu.adminquot; description=quot;Admin Menuquot; roles=quot;adminquot; width=quot;120quot; page=quot;/users.htmlquot;> <Item name=quot;ViewUsersquot; title=quot;menu.admin.usersquot; page=quot;/users.htmlquot;/> <Item name=quot;ActiveUsersquot; title=quot;mainMenu.activeUsersquot; page=quot;/activeUsers.htmlquot;/> <Item name=quot;ReloadContextquot; title=quot;menu.admin.reloadquot; page=quot;/reload.htmlquot;/> <Item name=quot;FlushCachequot; title=quot;menu.flushCachequot; page=quot;/flushCache.htmlquot;/> <Item name=quot;Clickstreamquot; title=quot;menu.clickstreamquot; page=quot;/clickstreams.jspquot;/> </Menu> • É um menu com sub-itens 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 38
39.
Appfuse
• Na pasta classes dentro da pasta WEB-INF estão alguns arquivos de configuração e os arquivos ApplicationResources • Esses são os arquivos utilizados para a internacionalização • De acordo com a língua escolhida no browser o programa irá escolher um desses arquivos para mostrar. • Caso não tenha a configuração em uma língua o programa buscará na padrão se não encontrar na padrão o programa buscará em qualquer outra.Ex: produto.id=Id Poderia ser produto.id=Identificador 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 39
40.
Appfuse
• Hierarquia de chamadas • Dao -> DaoHibernate Utiliza • Service(manager) -> ServiceImpl(managerImpl) INTERFACES(FACEDE) IMPLEMENTAÇÃO Utiliza CONTROLLER 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 40
41.
AppFuse •
Agradecimentos em especial: • Rodrigos Paes Phd. • Bibliografia • https://appfuse.dev.java.net/ • http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 41
Baixar agora