Apostila Struts.pdf

Share Embed Donate


Short Description

Download Apostila Struts.pdf...

Description

Apostila Struts2

Aula

01

Checkbox

http://struts.apache.org/

Struts É um framework de desenvolvimento da camada controladora, numa estrutura seguindo o padrão Model padrão  Model 2 (uma variante do MVC do  MVC oficializada pela Sun) pela Sun),, de aplicações web (principalmente) construído em Java em  Java para ser utilizado em [1] um container  web  web em um servidor um servidor J2EE.  J2EE. Este framework foi originalmente desenvolvido por Craig McClanahan e doado para a Apache Software Foundation em 2002, em 2002,   onde continua sendo desenvolvido segundo o padrão desta fundação.

Objetivos e visão geral Em um aplicativo de web padrão Java EE,  EE,  o cliente normalmente envia informações ao servidor através de um formulário da web. Em seguida, a informação ou é entregue a umJava um Java Servlet que a processa, interage com um banco de dados e produz uma resposta formatada em HTML, ou é entregue a um JavaServer um JavaServer Page (JSP)  (JSP)  que mixa código HTML código HTMLee Java para obter o mesmo resultado. Ambas as abordagens são consideradas inadequadas para grandes projetos porque eles misturam a lógica do aplicativo com apresentação e dificultam a manutenção. O objetivo do Struts é separar o model  (modelo - lógica de aplicativo que interage com um banco de dados) do view (visualização - páginas HTML apresentadas para o cliente) e do controller (controlador - instância que transmite informações entre a exibição e o modelo). Struts fornece o www.cotiinformatica.com.br

1

Apostila Struts2

Aula

01

Checkbox

controlador/controller  (um servlet  (um servlet conhecido como ActionServlet) e facilita a escrita de moldes padronizados para a camada de visualização/view (normalmente em JSP, em JSP, mas XML mas XML//XSLT e Velocity também são suportados). O programador de aplicativo da web é responsável por escrever o código do modelo/ model, e por criar um arquivo de configuração centralizador (struts-config.XML) que une modelo, visualização e controlador. Solicitações do cliente são enviadas para o controller em forma de Actions (ações) definidas no arquivo de configuração. O controller , ao receber uma solicitação, chama a classe Action correspondente a Programação Orientada a Objeto, e esta interage com o código do model específico. O código do model retorna um "ActionForward", "ActionForward", uma cadeia de caracteres que informa ao controller  qual  qual página de resultado deve ser enviada para o cliente. cliente. As informações são passadas entre model e view  em  em forma de JavaBeans especial. Uma poderosa biblioteca personalizada de palavras-chave (tags - metadata) permite ler e gravar o conteúdo (beans) da camada de apresentação sem a necessidade de qualquer código Java embutido. Struts é categorizado como uma estrutura de aplicativo web baseada em solicitação. Struts também oferece suporte a internacionalização a  internacionalização e inclui um mecanismo de moldes chamado "Tiles", que permite que a camada de apresentação seja composta de cabeçalho, rodapé e componentes de conteúdo independentes.

Principais problemas e soluções:  



Facilita a população de beans (Action Forms) Simplifica o uso de servlets, necessitando apenas a criação de classes Action Com suas tags dispensa o uso de scriptlets em 98% dos casos.

LIBS utlizadas no projeto... asm-3.3.jar asm-commons-3.3.jar commons-fileupload-1.3.jar commons-io-2.0.1.jar commons-lang-2.4.jar commons-lang3-3.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.jar mysql-connector-java-5.1.26-bin.jar ognl-3.0.6.jar servlet3-api.jar

www.cotiinformatica.com.br

2

Apostila Struts2

Aula

01

Checkbox

struts2-convention-plugin-2.3.15.1.jar struts2-core-2.3.15.1.jar struts2-jquery-plugin-3.6.1.jar xwork-core-2.3.15.1.jar

Estrutura do projeto...

package entity;

public class Produto { private Integer idProduto idProduto; ; private String nome nome; ; private Double preco preco; ; public Produto() { // TODO Auto-generated constructor stub } public Produto(Integer idProduto idProduto, , String nome nome, , Double preco) preco ) { super(); this.idProduto idProduto =  = idProduto idProduto; ; this.nome nome =  = nome nome; ; this.preco preco =  = preco preco; ; }

@Override public String toString() {

www.cotiinformatica.com.br

3

Apostila Struts2

Aula

01

Checkbox

return "Produto [idProduto="  + idProduto + ", nome=" + nome + ", preco=" + preco + "]"; }

public Integer getIdProduto() { return idProduto; } public void setIdProduto(Integer idProduto) { this.idProduto = idProduto; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public Double getPreco() { return preco; } public void setPreco(Double preco) { this.preco = preco; }

@Override public boolean equals(Object c) { return this.idProduto.equals(((Produto)c).getIdProduto()); } }

package action; import java.security.IdentityScope; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport;

www.cotiinformatica.com.br

4

Apostila Struts2

Aula

01

Checkbox

import entity.Produto;

public class ProdutoAction extends ActionSupport { private Produto produto; private List lista; private Integer[] idEscolhidos; private List produtosEscolhidos; public List getProdutosEscolhidos() { return produtosEscolhidos; } public void setProdutosEscolhidos(List produtosEscolhidos) { this.produtosEscolhidos = produtosEscolhidos; } public Produto getProduto() { return produto; } public void setProduto(Produto produto) { this.produto = produto; } public Integer[] getIdEscolhidos() { return idEscolhidos; } public void setIdEscolhidos(Integer[] idEscolhidos) { this.idEscolhidos = idEscolhidos; } public List getLista() { lista = new ArrayList(); lista.add(new Produto(10, "arroz", 15.)); lista.add(new Produto(20, "feijao", 9.5)); lista.add(new Produto(30, "carne", 50.)); lista.add(new Produto(40, "flango", 16.)); return lista; } public void setLista(List lista) { this.lista = lista; }

www.cotiinformatica.com.br

5

Apostila Struts2

Aula

01

Checkbox

public String init() { getLista(); return SUCCESS ; } public String enviar() { HttpServletRequest request = (HttpServletRequest) ActionContext. getContext().get(ServletActionContext. HTTP_REQUEST  ); try { Produto c = new Produto(); getLista(); produtosEscolhidos = new ArrayList(); if (idEscolhidos.length > 0) { for (Integer id : idEscolhidos) { Produto p = new Produto(); p.setIdProduto(id); produtosEscolhidos .add(lista.get(lista.indexOf(p))); } return SUCCESS ; } else { throw new IllegalArgumentException( "Nenhum Produto Marcado !! " ); } } catch (Exception ex) { request.setAttribute("msg", "Error :" + ex.getMessage()); } return ERROR; }

}

struts.xml

www.cotiinformatica.com.br

6

Apostila Struts2

Aula

01

Checkbox

/sistema.jsp /resposta.jsp /sistema.jsp

Para gerar o XML... Clicar com o botão direito no projeto -> Properties...

www.cotiinformatica.com.br

7

Apostila Struts2

Aula

01

Checkbox

Clicar em Project Faces -> Desmarcar Dynamic Web Module clicando com o botão direito -> Unlock

Desmarca -> Apply

www.cotiinformatica.com.br

8

Apostila Struts2

Aula

01

Checkbox

Marcar novamente -> Futher Configuration -> clicar em Generate web.xml -> ok -> Apply -> OK

web.xml Aula01-checkbox index.html index.htm index.jsp default.html default.htm default.jsp

www.cotiinformatica.com.br

9

Apostila Struts2

Aula

01

Checkbox

struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndEx ecuteFilter struts2 /*

Criar a página

índex.jsp

na pasta WebContent

Aula 1 Struts 2 Entrar no Sistema

www.cotiinformatica.com.br

10

Apostila Struts2

Aula

01

Checkbox

Para rodar o projeto... Clicar no projeto com o botão direito -> Run as -> Run on server

www.cotiinformatica.com.br

11

Apostila Struts2

Aula

01

Checkbox

sistema.jsp Sistema Struts2

Struts 2 com CheckBox Marque os produtos: ${msg}

www.cotiinformatica.com.br

12

Apostila Struts2

Aula

01

Checkbox



resposta.jsp Resposta

www.cotiinformatica.com.br

13

Apostila Struts2

Aula

01

Checkbox

Struts 2 com CheckBox  Home Produtos Escolhidos:

www.cotiinformatica.com.br

14

Apostila Struts2

Aula

02

StrutsTiles

Projeto Tiles Estrutura do projeto...

LIBS: antlr-2.7.7.jar c3p0-0.9.2.1.jar commons-beanutils-1.7.0.jar commons-collections-2.1.jar commons-collections-3.2.1-1.0.0.jar commons-digester-1.8.jar commons-logging-1.0.4.jar dom4j-1.6.1.jar ehcache-core-2.4.3.jar freemarker-2.3.8.jar hibernate-c3p0-4.3.1.Final.jar hibernate-commons-annotations-4.0.4.Final.jar hibernate-core-4.3.1.Final.jar hibernate-ehcache-4.3.1.Final.jar hibernate-entitymanager-4.3.1.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar hibernate-validator-4.3.0.Final.jar hibernate-validator-annotation-processor-4.3.0.Final.jar jandex-1.1.0.Final.jar javassist-3.18.1-GA.jar jboss-logging-3.1.3.GA.jar jboss-logging-annotations-1.2.0.Beta1.jar

www.cotiinformatica.com.br

1

Apostila Struts2

Aula

02

StrutsTiles

jboss-transaction-api_1.2_spec-1.0.0.Final.jar log4j-1.2.15.jar mysql-connector-java-5.1.23-bin.jar ognl-2.6.11.jar ojdbc14-10.2.0.3.jar servlet3-api.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.0-rc0.jar struts2-core-2.0.14.jar struts2-tiles-plugin-2.0.14.jar tiles-api-2.0.4.jar tiles-core-2.0.4.jar tiles-jsp-2.0.4.jar validation-api-1.0.0.GA.jar xwork-2.0.7.jar

package entity; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table;

@Entity @Table @NamedQueries( {@NamedQuery(name="Cliente.findAll",query="from Cliente"), @NamedQuery(name="Cliente.findByEmail" , query="from Cliente c where c.email= :param1" ) })

public class Cliente implements Serializable{ private static final long serialVersionUID = 1L;

www.cotiinformatica.com.br

2

Apostila Struts2

Aula

02

StrutsTiles

@Id @GeneratedValue(strategy=GenerationType. AUTO ) @Column private Integer idCliente; @Column(length=50) private String nome; @Column(length=50,unique= true) private String email; public Cliente() { } public Cliente(Integer idCliente, String nome, String email) { this.idCliente = idCliente; this.nome = nome; this.email = email; }

@Override public String toString() { return "Cliente [idCliente="  + idCliente + ", nome=" + nome + ", email=" + email + "]"; } public Integer getIdCliente() { return idCliente; } public void setIdCliente(Integer idCliente) { this.idCliente = idCliente; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }

www.cotiinformatica.com.br

3

Apostila Struts2

Aula

02

StrutsTiles

public static long getSerialversionuid() { return serialVersionUID; }

}

mysql_hibernate.cfg.xml org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/bd_t iles?createDatabaseIfNotExist=true root coti true update



package config; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.tool.hbm2ddl.SchemaExport;

www.cotiinformatica.com.br

4

Apostila Struts2

Aula

02

StrutsTiles

public class Main { public static void main(String[] args) { new SchemaExport( new AnnotationConfiguration().configure( "config/mysql_hibernate.cfg. xml")).create( true, true); System.out.println("Tableas geradas"); } }

No console... log4j:WARN No appenders could be found for logger (org.jboss.logging). log4j:WARN Please initialize the log4j system properly. drop table if exists Cliente create table Cliente ( idCliente integer not null auto_increment, email varchar(50), nome varchar(50), primary key (idCliente) ) alter table Cliente add constraint UK_tfai0ea59ylhrubk6at672968 (email) Tableas geradas

www.cotiinformatica.com.br

unique

5

Apostila Struts2

Aula

02

StrutsTiles

package persistence;

import org.hibernate.HibernateException; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration;

public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { Configuration configuration = new Configuration().configure( "config/mysql_hibernate.cfg.xml" ); StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings( configuration.get Properties());

www.cotiinformatica.com.br

6

Apostila Struts2

Aula

02

StrutsTiles

sessionFactory = configuration.buildSessionFactory( builder.build()); } catch (HibernateException ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError( ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void closeSessionFactory() { sessionFactory.close(); } }

package persistence; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.tool.hbm2ddl.SchemaExport; import entity.Cliente;

public class ClienteDao { Session session; Transaction transaction; Query query; Criteria criteria; public void create(Cliente c)throws Exception{ session = HibernateUtil. getSessionFactory().openSession(); transaction = session.beginTransaction(); session.save(c);

www.cotiinformatica.com.br

7

Apostila Struts2

Aula

02

StrutsTiles

transaction.commit(); session.close(); } public List findAll(){ session = HibernateUtil. getSessionFactory().openSession(); List resp = session.getNamedQuery("Cliente.findAll").list(); session.close(); return resp; } public Cliente findByCode(Integer cod)throws Exception{ session = HibernateUtil. getSessionFactory().openSession(); Cliente cliente= (Cliente) session.get(Cliente. class, cod); session.close(); return cliente; }

}

package action; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import entity.Cliente; import persistence.ClienteDao;

public class ControleCliente extends ActionSupport{ private Cliente cliente; HttpServletRequest request; private List lista; private void init(){ request = (HttpServletRequest)

www.cotiinformatica.com.br

8

Apostila Struts2

Aula

02

StrutsTiles

ActionContext. getContext().get(ServletActionContext. HTTP_RE QUEST ); }

public List getLista() { lista = new ClienteDao().findAll(); return lista; } public void setLista(List lista) { this.lista = lista; } public Cliente getCliente() { return cliente; } public void setCliente(Cliente cliente) { this.cliente = cliente; } public String home() { return SUCCESS; } public String cadastro() { return "cadastro"; } public String consulta() { getLista(); return "consulta"; } public String logout() { return "logout"; }

public String cadastrar(){ init(); try{ new ClienteDao().create( cliente); //grava cliente = new Cliente(); //limpa request.setAttribute("msg", "Dados Gravados do Cliente ..." ); //manada a mensagem //vá para success return SUCCESS; }catch(Exception ex){

www.cotiinformatica.com.br

9

Apostila Struts2

Aula

02

StrutsTiles

request.setAttribute("msg", "Error :" + ex.getMessage()); return ERROR; }

} }

struts.xml home /error.tiles cadastro

www.cotiinformatica.com.br

10

Apostila Struts2

Aula

02

StrutsTiles

/error.tiles

home cadastro consulta

web.xml org.apache.struts2.tiles.StrutsTilesListener tilesDefinitions /WEB-INF/tiles.xml struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /*

www.cotiinformatica.com.br

11

Apostila Struts2

Aula

02

StrutsTiles



tiles.xml < > >



www.cotiinformatica.com.br

14

Apostila Struts2

Aula

02

StrutsTiles



header.jsp Struts 2 Example - Tiles

footer.jsp www.cotiinformatica.com.br

menu.jsp

www.cotiinformatica.com.br

15

Apostila Struts2

Aula

02

StrutsTiles

Home Cadastrar Consultar

index.jsp Struts 2 Projeto - Template - Struts Tilles Entrar no Sistema

www.cotiinformatica.com.br

16

Apostila Struts2

Aula

02

StrutsTiles

welcome.jsp Bem vindo ao Struts 2 https://struts.apache.org/

www.cotiinformatica.com.br

17

Apostila Struts2

Aula

02

StrutsTiles

Vamos analisar algumas das características do Struts 2 que o ajudaram a se tornar um framework mais amigável e produtivo ao desenvolvedor. Linguagem Java: A linguagem Java tem mais de 10 anos de vida, possuindo diversas bibliotecas disponíveis que facilitam a vida dos programadores para se concentrarem mais no seus negócios e menos na infraestrutura e características da linguagem. Com uma plataforma madura por trás, o Struts está disponível para quem trabalha com Java. Plug-ins: O Struts 2 aceita plug-ins disponibilizados por terceiros, assim o Struts não exige que o framework venha com tudo e sim apenas as funcionalidades básicas.

www.cotiinformatica.com.br

18

Apostila Struts2

Aula

02

StrutsTiles

cadastro.jsp Cadastrar Cliente Nome: Email:

www.cotiinformatica.com.br

19

Apostila Struts2

Aula

02

StrutsTiles

${msg}

www.cotiinformatica.com.br

20

Apostila Struts2

Aula

02

StrutsTiles

Cadastrando...

Cadastrado..

www.cotiinformatica.com.br

21

Apostila Struts2

Aula

02

StrutsTiles

consulta.jsp Consultar Cliente IdCliente Nome Email

www.cotiinformatica.com.br

22

Apostila Struts2

Aula

02

StrutsTiles



www.cotiinformatica.com.br

23

Apostila Struts2

Aula

02

StrutsTiles

error.jsp error page.

www.cotiinformatica.com.br

24

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

Estrutura do preojeto...

LIBS: asm-3.3.jar asm-commons-3.3.jar commons-fileupload-1.3.jar commons-io-2.0.1.jar commons-lang-2.4.jar commons-lang3-3.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.jar mysql-connector-java-5.1.26-bin.jar ognl-3.0.6.jar servlet3-api.jar struts2-bootstrap-plugin-1.6.1.jar struts2-convention-plugin-2.3.15.1.jar struts2-core-2.3.15.1.jar struts2-jquery-plugin-3.6.1.jar xwork-core-2.3.15.1.jar

package entity;

public class Cliente { private Integer idCliente; private String nome; private String email;

www.cotiinformatica.com.br

1

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

public Cliente() { // TODO Auto-generated constructor stub } public Cliente(Integer idCliente, String nome, String email) { super(); this.idCliente = idCliente; this.nome = nome; this.email = email; }

@Override public String toString() { return "Cliente [idCliente="  + idCliente + ", nome=" + nome + ", email=" + email + "]"; } public Integer getIdCliente() { return idCliente; } public void setIdCliente(Integer idCliente) { this.idCliente = idCliente; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }

@Override public boolean equals(Object c) { return this.idCliente.equals(((Cliente)c).getIdCliente()); } }

www.cotiinformatica.com.br

2

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

package action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.validator.annotations.EmailValidator; import com.opensymphony.xwork2.validator.annotations.RequiredStringVali dator; import com.opensymphony.xwork2.validator.annotations.ValidatorType; import entity.Cliente;

public class ClienteAction extends ActionSupport{ private Cliente cliente; private List lista; private Integer idEscolhido; public Integer getIdEscolhido() { return idEscolhido; } public void setIdEscolhido(Integer idEscolhido) { this.idEscolhido = idEscolhido; } public ClienteAction() { cliente = new Cliente(); } public Cliente getCliente() { return cliente; } public void setCliente(Cliente cliente) {

www.cotiinformatica.com.br

3

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

this.cliente = cliente;

} public List getLista() { lista = new ArrayList(); lista.add(new Cliente(10,"joao","[email protected]")); lista.add(new Cliente(20,"maria","[email protected]")); lista.add(new Cliente(30,"ana","[email protected]")); return lista; } public void setLista(List lista) { this.lista = lista; } @Action(value="home", results={ @Result(name=SUCCESS ,location="sistema.jsp"), @Result(name=INPUT ,location="sistema.jsp")}) public String init(){ getLista(); return SUCCESS ; } @Action(value="gravar", results={ @Result(name=SUCCESS ,location="resposta.jsp"), @Result(name=ERROR,location="sistema.jsp")}) public String cadastrar(){ HttpServletRequest request=(HttpServletRequest) ActionContext. getContext().get(ServletActionContext. HTTP_RE QUEST ); try{ Cliente c = new Cliente(); c.setIdCliente(idEscolhido); getLista(); cliente = lista.get(lista.indexOf(c)); request.setAttribute("msg", "Cliente Escolhido: " + cliente); return SUCCESS ; }catch(Exception ex){ ex.printStackTrace(); request.setAttribute("msg", "Error :" + ex.getMessage()); } return ERROR ; } }

www.cotiinformatica.com.br

4

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

web.xml StudentEnrollmentWithStruts struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndEx ecuteFilter struts2 /*

index.jsp



www.cotiinformatica.com.br

5

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

Struts Annotation Entrar no Sistema

sistema.jsp

www.cotiinformatica.com.br

6

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

Struts Annotation Escolher Cliente  ${msg}

www.cotiinformatica.com.br

7

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

resposta.jsp Resposta

www.cotiinformatica.com.br

8

Apostila Struts2

Aula

03

Aula03-struts_Annotation_Bootstrap

Struts Annotation ${msg}

www.cotiinformatica.com.br

9

Apostila Struts2

Aula

04

struts2_crud

Estrutura do projeto...

LIBS: antlr-2.7.6.jar asm-attrs.jar asm.jar c3p0-0.9.0.jar cglib-2.1.3.jar commons-beanutils-1.8.0.jar commons-codec-1.3.jar commons-collections-3.2.1.jar commons-digester-2.0.jar commons-el-1.0.jar commons-fileupload-1.0.jar commons-lang-2.1.jar commons-logging-1.1.1.jar commons-validator.jar dom4j-1.6.1.jar ejb3-persistence.jar freemarker-2.3.8.jar hibernate-annotations.jar hibernate-commons-annotations.jar hibernate3.jar jakarta-oro.jar jcommon_javadoc.jar

www.cotiinformatica.com.br

1

Apostila Struts2

Aula

04

struts2_crud

jcommon_source.jar jcommon.jar jstl.jar jta.jar log4j-1.2.15.jar mysql-connector-java-5.1.23-bin.jar ognl-2.6.11.jar oro-2.0.8.jar servlet3-api.jar standard.jar struts2-core-2.0.14.jar xwork-2.0.7.jar

package entity; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table;

@Entity @Table @NamedQueries({ @NamedQuery(name="Usuario.findAll",query="from Usuario"), @NamedQuery(name="Usuario.findByLogin" , query="from Usuario u where u.email =:param1 and u.senha =:param2") })

public class Usuario implements Serializable{ private static final long serialVersionUID = 1L;

@Id @GeneratedValue(strategy=GenerationType. AUTO ) @Column

www.cotiinformatica.com.br

2

Apostila Struts2

Aula

04

struts2_crud

private Integer idUsuario;

@Column(unique= true, length=50,nullable= false) private String email; @Column(length=50, nullable= false) private String nome; @Column( length=100, nullable= false) private String senha; @Column( length=10, nullable= false) private String perfil; public Usuario() { } public Usuario(Integer idUsuario, String email, String nome, String senha, String perfil) { this.idUsuario = idUsuario; this.email = email; this.nome = nome; this.senha = senha; this.perfil = perfil; }

@Override public String toString() { return "Usuario [idUsuario="  + idUsuario + ", email=" + email + ", nome=" + nome + ", perfil=" + perfil + "]"; } public Integer getIdUsuario() { return idUsuario; } public void setIdUsuario(Integer idUsuario) { this.idUsuario = idUsuario; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getNome() {

www.cotiinformatica.com.br

3

Apostila Struts2

Aula

04

struts2_crud

return nome;

} public void setNome(String nome) { this.nome = nome; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } public String getPerfil() { return perfil; } public void setPerfil(String perfil) { this.perfil = perfil; } public static long getSerialversionuid() { return serialVersionUID; } }

mysql_hibernate.cfg.xml org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/struts2?createDatabaseIfNotExist=tru e root

www.cotiinformatica.com.br

4

Apostila Struts2

Aula

04

struts2_crud

coti true true update

package config; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport;

public class Main { public static void main(String[] args) { Configuration cfg = new AnnotationConfiguration(). configure("config/mysql_hibernate.cfg.xml" ); new SchemaExport(cfg).create( true,true); System.out.println("Tabela Gerada com Sucesso ..." ); } }

No console... log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). log4j:WARN Please initialize the log4j system properly. drop table if exists Usuario create table Usuario ( idUsuario integer not null auto_increment, email varchar(50) not null unique, nome varchar(50) not null, perfil varchar(10) not null, senha varchar(100) not null,

www.cotiinformatica.com.br

5

Apostila Struts2

Aula

04

struts2_crud

primary key (idUsuario) ) Tabela Gerada com Sucesso ...

package type;

//Classe Estatica(Constante)

public enum PerfilUsuario {  ADMINISTRADOR("adm"),USUARIO ("usu"),GUEST ("guest"); private String perfil;

PerfilUsuario(String perfil){ this.perfil = perfil; } public String getPerfil() { return perfil; }

}

www.cotiinformatica.com.br

6

Apostila Struts2

Aula

04

struts2_crud

package control; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor;

public class ClearCacheInterceptor implements Interceptor{ private static final long serialVersionUID = 1L;

@Override public void destroy() { // TODO Auto-generated method stub } @Override public void init() { // TODO Auto-generated method stub } @Override public String intercept(ActionInvocation invocation) throws Exception { HttpServletResponse response = ServletActionContext. getResponse(); System.out.println("Chegou no Intercept ------------------" ); response.setHeader("Cache-Control", "no-cache, no-store" ); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); return invocation.invoke(); } }

package control; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig;

www.cotiinformatica.com.br

7

Apostila Struts2

Aula

04

struts2_crud

import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;

@WebFilter({"/usu/*","/adm/*"})

public class Filtro implements Filter { public Filtro() { } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req= (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; HttpSession session = req.getSession(); if (session.getAttribute("usuario")==null){ resp.sendRedirect("../index.jsp"); //va para o index.jsp return; //para } //senão dá sequencia ... chain.doFilter(request, response); } public void init(FilterConfig fConfig) throws ServletException { } }

www.cotiinformatica.com.br

8

Apostila Struts2

Aula

04

struts2_crud

package control; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import persistence.UsuarioDao; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import entity.Usuario;

public class UsuarioAction extends ActionSupport implements ModelDriven{ private static final long serialVersionUID = 1L;

//Nome do Objeto private Usuario usuario; //Classe Usuario private List lista; HttpServletRequest request; HttpSession session; //Irei trabalhar com Sessão public UsuarioAction() { usuario = new Usuario(); //espaço no Construtor lista =new ArrayList(); //construtor }

@Override public Usuario getModel() { return usuario; } public Usuario getUsuario() { return usuario;

www.cotiinformatica.com.br

9

Apostila Struts2

Aula

04

struts2_crud

} public void setUsuario(Usuario usuario) { this.usuario = usuario; } public static long getSerialversionuid() { return serialVersionUID; } public String listar(){ return SUCCESS; } public List getLista() { try{ lista = new UsuarioDao().findAll(); //chamada do Banco }catch(Exception ex){ } return lista; } public void setLista(List lista) { this.lista = lista; }

public String gravar(){ request = (HttpServletRequest) ActionContext. getContext().get (ServletActionContext. HTTP_REQUEST ); try{ new UsuarioDao().create( usuario); getLista(); usuario = new Usuario(); request.setAttribute("msg", "Dados Gravados"); }catch(Exception ex){ request.setAttribute("msg", "Error :" + ex.getMessage()); } return SUCCESS; }

public String logar(){ request = (HttpServletRequest) ActionContext. getContext().get (ServletActionContext. HTTP_REQUEST );

www.cotiinformatica.com.br

10

Apostila Struts2

Aula

04

struts2_crud

session = request.getSession( true); try{ Usuario resp = new UsuarioDao().findByLogin( usuario); if (resp!=null){ usuario = new Usuario(); session.setAttribute("usuario", resp); session.setAttribute("msg","Logado Com Sucesso" ); return SUCCESS; } else{ session.setAttribute("usuario", null); //limpa } request.setAttribute("msg", "Usuario NAO LOGADO" ); return INPUT ; //sistema.jsp }catch(Exception ex){ request.setAttribute("msg", "Error :" + ex.getMessage()); return ERROR; //erro.jsp } } public String logout(){ request = (HttpServletRequest) ActionContext. getContext().get(ServletActionContext. HTTP_REQUEST  ); session = request.getSession( true); try{ session.setAttribute("msg", null); session.setAttribute("usuario", null); session.invalidate(); return SUCCESS; }catch(Exception ex){ request.setAttribute("msg","Error:" + ex.getMessage()); } return ERROR; } }

www.cotiinformatica.com.br

11

Apostila Struts2

Aula

04

struts2_crud

package persistence; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.SessionFactory;

public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { sessionFactory = new AnnotationConfiguration(). configure("config/mysql_hibernate.cfg.xml" ).buildSessionFactory( ); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError( ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; }

}

package persistence; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.jcommon.encryption.SimpleMD5; import entity.Usuario;

public class UsuarioDao { Session session; Transaction transaction; Query query; Criteria criteria;

www.cotiinformatica.com.br

12

Apostila Struts2

Aula

04

struts2_crud

private void criptografia(Usuario u){ SimpleMD5 md5 = new SimpleMD5(u.getSenha(),"cotiinformatica@gmail" ); u.setSenha(md5.toHexString()); } public void create(Usuario u){ criptografia(u); session = HibernateUtil. getSessionFactory().openSession(); transaction = session.beginTransaction(); session.save(u); transaction.commit(); session.close(); } public Usuario findByLogin(Usuario u){ criptografia(u); session = HibernateUtil. getSessionFactory().openSession(); query = session.getNamedQuery("Usuario.findByLogin" ); query.setString("param1", u.getEmail()); query.setString("param2", u.getSenha()); Usuario resp=(Usuario) query.uniqueResult(); session.close(); return resp; }

public List findAll(){ session = HibernateUtil. getSessionFactory().openSession(); query = session.getNamedQuery("Usuario.findAll"); List lista =query.list(); session.close(); return lista; }

}

www.cotiinformatica.com.br

13

Apostila Struts2

Aula

04

struts2_crud

struts.xml /sistema.jsp /sistema.jsp /error.jsp /consulta.jsp /usu/logado.jsp /sistema.jsp /error.jsp /sistema.jsp /usu/logado.jsp /sistema.jsp /error.jsp

web.xml struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* 30 sistema.jsp

www.cotiinformatica.com.br

15

Apostila Struts2

Aula

04

struts2_crud

index.jsp Bem Vindo ao Sistema Struts2 Entrar No Sistema

O Struts 2 foi inicialmente distribuído em Janeiro de 2001, obtendo um sucesso incrível entre os desenvolvedores Java. O Struts na sua versão inicial oferecia um padrão MVC (Model-View-Controller ou Modelo-Visão-Controlador) para desenvolvimento Java Web. O Struts facilitava bastante o gerenciamento, a reutilização e a manutenção do código.

www.cotiinformatica.com.br

16

Apostila Struts2

Aula

04

struts2_crud

Com o decorrer dos anos, o desenvolvimento com Struts foi decaindo bastante, muito em função da quantidade de código exigido para que o desenvolvedor possa implementar as facilidades necessárias de um aplicativo web, portanto, uma nova proposta para uma nova versão do Struts foi sugerida.

sistema.jsp

www.cotiinformatica.com.br

17

Apostila Struts2

Aula

04

struts2_crud

Cadastro de Usuário em Struts2 Home Consultar os Dados Cadastro Logar

a-z]{3,35}"

id="email" Email" control" />

id="senha"

Nome :

title="Entre com o Padrao no Senha" class="form-

Email :

id="senha2" Senha" control" />

Senha : Java WebDeveloper www.cotiinformatica.com.br ${msg}

www.cotiinformatica.com.br

19

Apostila Struts2

Aula

04

struts2_crud

Cadastrando...

www.cotiinformatica.com.br

20

Apostila Struts2

Aula

04

struts2_crud

Cadastrado...

Aba de Logar...

www.cotiinformatica.com.br

21

Apostila Struts2

Aula

04

struts2_crud

Logando...

Logado...

www.cotiinformatica.com.br

22

Apostila Struts2

Aula

04

struts2_crud

error.jsp > > > > >Página de Erro do Sistema Struts2 Sistema >${msg}

www.cotiinformatica.com.br

23

Apostila Struts2

Aula

04

struts2_crud

consulta.jsp Consulta Struts Usuários Home

www.cotiinformatica.com.br

24

Apostila Struts2

Aula

04

struts2_crud

Consulta Nome Email Perfil Java WebDeveloper www.cotiinformatica.com.br

www.cotiinformatica.com.br

25

Apostila Struts2

Aula

04

struts2_crud

www.cotiinformatica.com.br

26

Apostila Struts2

Aula

04

struts2_crud

usu/logado.jsp Página de Usuário Struts2 Logout , ${msg}

www.cotiinformatica.com.br

28

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

Estrutura do Projeto...

LIBS: antlr-2.7.6.jar asm-attrs.jar asm.jar c3p0-0.9.0.jar cglib-2.1.3.jar commons-beanutils-1.7.0.jar commons-codec-1.3.jar commons-collections-3.1.jar commons-digester-1.6.jar commons-el-1.0.jar commons-fileupload-1.0.jar commons-lang-2.1.jar commons-logging-1.0.4.jar dom4j-1.6.1.jar ejb3-persistence.jar freemarker-2.3.8.jar hibernate-annotations.jar hibernate-commons-annotations.jar hibernate3.jar hsqldb.jar jstl-1.1.0.jar jta.jar log4j-1.2.15.jar mysql-connector-java-5.1.23-bin.jar ognl-2.6.11.jar

www.cotiinformatica.com.br

1

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

oro-2.0.8.jar servlet3-api.jar standard.jar struts2-core-2.0.11.jar xwork-2.0.4.jar

package entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;

@Entity

public class Cliente { @Id @GeneratedValue(strategy = GenerationType. AUTO ) private Integer idCliente; @Column(length = 35) private String nome; @Column(length = 1, columnDefinition = "enum('m','f')") private String sexo; public Cliente() {

} public Cliente(Integer idCliente, String nome, String sexo)

{ this.idCliente = idCliente; this.nome = nome; this.sexo = sexo;

} public Integer getIdCliente() { return idCliente;

}

www.cotiinformatica.com.br

2

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

public void setIdCliente(Integer idCliente) { this.idCliente = idCliente;

} public String getNome() { return nome;

} public void setNome(String nome) { this.nome = nome;

} public String getSexo() { return sexo;

} public void setSexo(String sexo) { this.sexo = sexo;

} }

mysql_hibernate.cfg.xml org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/stru ts2?createDatabaseIfNotExist=true root 1234 true

www.cotiinformatica.com.br

3

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

true true package config; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport;

public class Main { public static void main(String[] args) { Configuration cfg = new

AnnotationConfiguration().configure("config/mysql_hibernate.cfg. xml"); new SchemaExport(cfg).create(true,true); System.out.println("Tabela Cliente gerada"); } }

No console... log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). log4j:WARN Please initialize the log4j system properly. drop table if exists Cliente create table Cliente ( idCliente integer not null auto_increment, nome varchar(35), sexo enum('m','f'), primary key (idCliente) ) Tabela Cliente gerada

www.cotiinformatica.com.br

4

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

package persistence;

import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.SessionFactory;

public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { sessionFactory = new

AnnotationConfiguration().configure("config/mysql_hibernate.cfg. xml").buildSessionFactory(); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } }

www.cotiinformatica.com.br

5

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

public static SessionFactory getSessionFactory() { return sessionFactory;

} } package persistence; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import entity.Cliente;

public class ClienteDao { Session session; Transaction transaction; Criteria criteria; Query query; public void create(Cliente c) throws Exception { session = HibernateUtil.getSessionFactory().openSession();

transaction = session.beginTransaction(); session.save(c); transaction.commit(); session.close(); } public void update(Cliente c) throws Exception { session = HibernateUtil.getSessionFactory().openSession();

transaction = session.beginTransaction(); session.update(c); transaction.commit(); session.close(); } public void delete(Cliente c) throws Exception { session = HibernateUtil.getSessionFactory().openSession();

transaction = session.beginTransaction(); session.delete(c);

www.cotiinformatica.com.br

6

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

transaction.commit(); session.close(); } public Cliente findByIde(Integer code) throws Exception{ session = HibernateUtil.getSessionFactory().openSession(); Cliente resp = (Cliente)session.get(Cliente.class, code);

session.close(); return resp; } public List findAll() { session = HibernateUtil.getSessionFactory().openSession(); criteria = session.createCriteria(Cliente.class);

List lista = criteria.list(); session.close(); return lista; } } package control; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import persistence.ClienteDao; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import entity.Cliente;

public class ClienteAction extends

ActionSupport { private static final long serialVersionUID = 1L; private Cliente cliente; private String id; private List clientes; public ClienteAction() { cliente = new Cliente();

www.cotiinformatica.com.br

7

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

clientes = new ArrayList(); } public Cliente getCliente() { return cliente;

} public void setCliente(Cliente cliente) { this.cliente = cliente;

} public List getClientes() { try { clientes = new ClienteDao().findAll(); } catch (Exception e) {

e.printStackTrace(); } return clientes;

} public void setClientes(List clientes) { this.clientes = clientes;

} public String getId() { return id;

} public void setId(String id) { this.id = id;

} public static long getSerialversionuid() { return serialVersionUID;

} public String cadastrarCliente() {

HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext. HTTP_REQUEST  ); try { new ClienteDao().create(cliente); request.setAttribute("msg", "Dados Gravados com Sucesso!"); } catch (Exception e) { request.setAttribute("msg", "Error: " + e.getMessage()); e.printStackTrace(); return ERROR; } return SUCCESS; }

www.cotiinformatica.com.br

8

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

public String deletarCliente() {

HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext. HTTP_REQUEST  ); try { Integer idCliente = new Integer(id); cliente = new ClienteDao().findByIde(idCliente); new ClienteDao().delete(cliente); request.setAttribute("msg", "Cliente Deletado com Sucesso!"); } catch (Exception e) { request.setAttribute("msg", "Error: " + e.getMessage()); return ERROR; } return SUCCESS; } public String listarClientes() { return SUCCESS;

} }

struts.xml /sistema.jsp /error.jsp /consulta.jsp /error.jsp

www.cotiinformatica.com.br

9

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

/consulta.jsp

web.xml

struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* 30 index.jsp

www.cotiinformatica.com.br

10

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

index.jsp Struts2 Projeto STRUTS 2.0 Cadastrar  Consultar Struts 2 / Spring MVC / JSF - MVC http://struts.apache.org/ Struts 2 Segue um padrao (XML), configuração , forma de trabalhar ... Quem comando o Projeto Todo (struts.xml) _ Faz toda a configuração que você precisa para seu projeto ... Inversão de Valores ... Quem controla a forma de seu projeto trabalhar é um arquivo .xml Struts2 Voce tem Defesa a Segurança ....

FrameWork Potente em relacao a

www.cotiinformatica.com.br

11

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

Website by JavaWebDeveloper Tarde

sistema.jsp Cadastro

www.cotiinformatica.com.br

12

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

Projeto STRUTS 2.0  Home   Cadastrar Cliente  Consultar Cliente Cadastro de Usuário Nome: Sexo: Masculino Feminino Gravar Cliente   ${msg}

www.cotiinformatica.com.br

14

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

Clicando em cadastrar...

Cadastrando...

www.cotiinformatica.com.br

15

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

consulta.jsp Consulta Projeto STRUTS 2.0

 Home   Cadastrar Cliente   Consultar Cliente ${msg} Consulta de Clientes idCliente Nome Sexo

www.cotiinformatica.com.br

16

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

Excluir Website by JavaWebDeveloper Tarde

www.cotiinformatica.com.br

17

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

Apagando carol...

www.cotiinformatica.com.br

18

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

error.jsp Erro body { background-image: url("img/404-10.jpg"); background-repeat: no-repeat; background-attachment: fixed  ; background-size: cover; }  Home ${msg}

www.cotiinformatica.com.br

19

Apostila Struts2

Aula

05

Struts Cadastrar, Modal, Consultar

www.cotiinformatica.com.br

20

Apostila Struts2

Aula

06

Struts Select Bootstrap

Estrutura do projeto...

LIBS: asm-3.3.jar asm-commons-3.3.jar commons-fileupload-1.3.jar commons-io-2.0.1.jar commons-lang-2.4.jar commons-lang3-3.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.jar mysql-connector-java-5.1.26-bin.jar ognl-3.0.6.jar servlet3-api.jar struts2-convention-plugin-2.3.15.1.jar struts2-core-2.3.15.1.jar struts2-jquery-plugin-3.6.1.jar xwork-core-2.3.15.1.jar

www.cotiinformatica.com.br

1

Apostila Struts2

Aula

06

Struts Select Bootstrap

package entity; public class Cliente { private Integer idCliente; private String nome; private String email; public Cliente() { // TODO Auto-generated constructor stub } public Cliente(Integer idCliente, String nome, String email) { super(); this.idCliente = idCliente; this.nome = nome; this.email = email; }

@Override public String toString() { return "Cliente [idCliente="  + idCliente + ", nome=" + nome + ", email=" + email + "]"; } public Integer getIdCliente() { return idCliente; } public void setIdCliente(Integer idCliente) { this.idCliente = idCliente; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }

www.cotiinformatica.com.br

2

Apostila Struts2

Aula

06

Struts Select Bootstrap

@Override public boolean equals(Object c) { return this.idCliente.equals(((Cliente)c).getIdCliente()); } }

package action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import entity.Cliente;

public class ClienteAction extends ActionSupport{ private Cliente cliente; private List lista; private Integer idEscolhido; public Integer getIdEscolhido() { return idEscolhido; } public void setIdEscolhido(Integer idEscolhido) { this.idEscolhido = idEscolhido; } public ClienteAction() { cliente = new Cliente(); } public Cliente getCliente() { return cliente; } public void setCliente(Cliente cliente) { this.cliente = cliente; }

www.cotiinformatica.com.br

3

Apostila Struts2

Aula

06

Struts Select Bootstrap

public List getLista() { lista = new ArrayList(); lista.add(new Cliente(10,"joao","[email protected]")); lista.add(new Cliente(20,"maria","[email protected]")); lista.add(new Cliente(30,"ana","[email protected]")); return lista; } public void setLista(List lista) { this.lista = lista; } public String init(){ getLista(); return SUCCESS ; } public String enviar(){ HttpServletRequest request=(HttpServletRequest) ActionContext. getContext().get(ServletActionContext. HTTP_RE QUEST ); try{ Cliente c = new Cliente(); c.setIdCliente(idEscolhido); getLista(); cliente = lista.get(lista.indexOf(c)); request.setAttribute("msg", "Cliente Escolhido: "  + cliente); return SUCCESS ; }catch(Exception ex){ ex.printStackTrace(); request.setAttribute("msg", "Error :" + ex.getMessage()); } return ERROR; } }

struts.xml

www.cotiinformatica.com.br

4

Apostila Struts2

Aula

06

Struts Select Bootstrap

/sistema.jsp /resposta.jsp /sistema.jsp

web.xml struts2_select_bootstrap struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndEx ecuteFilter struts2 /*

www.cotiinformatica.com.br

5

Apostila Struts2

Aula

06

Struts Select Bootstrap

index.jsp Index Sistema Struts2 Entrar no Sistema

www.cotiinformatica.com.br

6

Apostila Struts2

Aula

06

Struts Select Bootstrap

sistema.jsp Escolher Cliente

www.cotiinformatica.com.br

7

Apostila Struts2

Aula

06

Struts Select Bootstrap

 ${msg}

www.cotiinformatica.com.br

8

Apostila Struts2

Aula

06

Struts Select Bootstrap

Escolhendo o cliente...

resposta.jsp Resposta

www.cotiinformatica.com.br

9

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF