0% acharam este documento útil (0 voto)
617 visualizações105 páginas

Apostila Struts PDF

Enviado por

caretronics
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
617 visualizações105 páginas

Apostila Struts PDF

Enviado por

caretronics
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

01

Apostila Struts2 Aula

Checkbox

[Link]

É um framework de desenvolvimento da camada controladora, numa estrutura


Struts
seguindo o padrão Model 2 (uma variante do MVC oficializada pela Sun), de
aplicações web (principalmente) construído em Java para ser utilizado em
um container web em um servidor J2EE.[1]
Este framework foi originalmente desenvolvido por Craig McClanahan e doado
para a Apache Software Foundation 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, 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 Servlet que a processa, interage com um
banco de dados e produz uma resposta formatada em HTML, ou é entregue a
um JavaServer Page (JSP) que mixa código HTMLe 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

[Link] 1
01
Apostila Struts2 Aula

Checkbox

controlador/controller (um servlet conhecido como ActionServlet) e facilita a


escrita de moldes padronizados para a camada de
visualização/view (normalmente em JSP, 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 ([Link]) 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", uma
cadeia de caracteres que informa ao controller qual página de resultado deve
ser enviada para o cliente. As informações são passadas
entre model e view 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 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...


[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

[Link] 2
01
Apostila Struts2 Aula

Checkbox

struts2-convention-plugin-[Link].jar
struts2-core-[Link].jar
[Link]
xwork-core-[Link].jar

Estrutura do projeto...

package entity;

public class Produto {


private Integer idProduto;
private String nome;
private Double preco;

public Produto() {
// TODO Auto-generated constructor stub
}

public Produto(Integer idProduto, String nome, Double


preco) {

[Link] = idProduto;
super();

[Link] = nome;
[Link] = preco;
}

@Override
public String toString() {

[Link] 3
01
Apostila Struts2 Aula

Checkbox

return "Produto [idProduto=" + idProduto + ", nome="


+ nome + ", preco=" + preco + "]";
}

public Integer getIdProduto() {


return idProduto;
}
public void setIdProduto(Integer idProduto) {
[Link] = idProduto;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
[Link] = preco;
}

@Override
public boolean equals(Object c) {
return

}
[Link](((Produto)c).getIdProduto());

package action;

import [Link];
import [Link];
import [Link];

import [Link];

import [Link];

import [Link];
import [Link];

[Link] 4
01
Apostila Struts2 Aula

Checkbox

import [Link];

public class ProdutoAction extends


ActionSupport {
private Produto produto;
private List<Produto> lista;
private Integer[] idEscolhidos;

private List<Produto> produtosEscolhidos;

public List<Produto> getProdutosEscolhidos() {


return produtosEscolhidos;
}
public void setProdutosEscolhidos(List<Produto>
produtosEscolhidos) {
[Link] = produtosEscolhidos;
}

public Produto getProduto() {


return produto;
}
public void setProduto(Produto produto) {
[Link] = produto;
}
public Integer[] getIdEscolhidos() {
return idEscolhidos;
}
public void setIdEscolhidos(Integer[] idEscolhidos) {
[Link] = idEscolhidos;
}
public List<Produto> getLista() {
lista = new ArrayList<Produto>();
[Link](new Produto(10, "arroz", 15.));
[Link](new Produto(20, "feijao", 9.5));
[Link](new Produto(30, "carne", 50.));
[Link](new Produto(40, "flango", 16.));
return lista;
}
public void setLista(List<Produto> lista) {
[Link] = lista;
}

[Link] 5
01
Apostila Struts2 Aula

Checkbox

public String init() {


getLista();

}
return SUCCESS;

public String enviar() {


HttpServletRequest request = (HttpServletRequest)
[Link]().get(ServletActionContext.HTTP_REQUEST
);
try {
Produto c = new Produto();
getLista();
produtosEscolhidos = new ArrayList<>();
if ([Link] > 0) {
for (Integer id : idEscolhidos) {
Produto p = new Produto();
[Link](id);
[Link]([Link]([Link](p)));
}

} else {
return SUCCESS;

throw new IllegalArgumentException("Nenhum


Produto Marcado !! ");
}
} catch (Exception ex) {
[Link]("msg", "Error :" +
[Link]());
}

}
return ERROR;

[Link]
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
2.0//EN"
"[Link]

<struts>

<package name="produtoaction" extends="struts-default">

[Link] 6
01
Apostila Struts2 Aula

Checkbox

<action name="home"
class="[Link]"
method="init">
<result name="success">/[Link]</result>
</action>

<action name="[Link]"
class="[Link]"
method="enviar">
<result name="success">/[Link]</result>
<result name="error">/[Link]</result>
</action>

</package>
</struts>

Para gerar o XML...

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

[Link] 7
01
Apostila Struts2 Aula

Checkbox

Clicar em Project Faces -> Desmarcar Dynamic Web Module clicando


com o botão direito -> Unlock

Desmarca -> Apply

[Link] 8
01
Apostila Struts2 Aula

Checkbox

Marcar novamente -> Futher Configuration -> clicar em Generate


[Link] -> ok -> Apply -> OK

[Link]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="[Link]
xmlns="[Link]
xsi:schemaLocation="[Link]
[Link]
version="3.0">

<display-name>Aula01-checkbox</display-name>

<welcome-file-list>
<welcome-file>[Link]</welcome-file>
<welcome-file>[Link]</welcome-file>
<welcome-file>[Link]</welcome-file>
<welcome-file>[Link]</welcome-file>
<welcome-file>[Link]</welcome-file>
<welcome-file>[Link]</welcome-file>
</welcome-file-list>

<filter>

[Link] 9
01
Apostila Struts2 Aula

Checkbox

<filter-name>struts2</filter-name>
<filter-
class>[Link]
ecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>

Criar a página í[Link] na pasta WebContent

<!doctype html>
<html>

<head>
<link rel="stylesheet" href="bootstrap/css/[Link]">
<script type="text/javascript" src="bootstrap/js/jquery-
[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
</head>

<body>

<div class="container">
<div class="well">
<h3>Aula 1 Struts 2</h3>
</div>

<a href="[Link]" class="btn btn-primary">Entrar no Sistema


<span class="glyphicon glyphicon-log-in"></span> </a>
</div>
</body>
</html>

[Link] 10
01
Apostila Struts2 Aula

Checkbox

Para rodar o projeto...

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

[Link] 11
01
Apostila Struts2 Aula

Checkbox

[Link]
<!doctype html>
<html>

<head>
<link rel="stylesheet" href="bootstrap/css/[Link]">
<script type="text/javascript" src="bootstrap/js/jquery-
[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>

<title>Sistema Struts2</title>
</head>

<body>

<%@ taglib prefix="s" uri="/struts-tags"%>


<div class="container">

<div class="well">
<h1>Struts 2 com CheckBox</h1>
</div>

<div class="col-sm-8 col-sm-offset-2">


<s:form action="[Link]">
<label style="font-color: #000">Marque os
produtos:</label>
<s:checkboxlist list="lista"
name="idEscolhidos"
listKey="idProduto"
listValue="nome" />
<s:submit value="Enviar" cssClass="btn
btn-primary"/>
<br />
<br />
${msg}

</s:form>
</div>
</div>
</body>

[Link] 12
01
Apostila Struts2 Aula

Checkbox

</html>

[Link]
<%@ page language="java" contentType="text/html; charset=ISO-
8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html >


<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-
8859-1">
<title>Resposta</title>

<link rel="stylesheet" href="bootstrap/css/[Link]">


<script type="text/javascript" src="bootstrap/js/jquery-
[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
</head>

[Link] 13
01
Apostila Struts2 Aula

Checkbox

<body>

<div class="container">
<div class="well">
<h1>Struts 2 com CheckBox</h1>
<a href="[Link]" class="btn btn-
primary"><span class="glyphicon glyphicon-home"></span> Home</a>

</div>
<h4>Produtos Escolhidos: </h4><br/>
<s:property value="produtosEscolhidos"/>

<br/>

</div>
</body>
</html>

[Link] 14
02
Apostila Struts2 Aula

StrutsTiles

Projeto Tiles
Estrutura do projeto...

LIBS:
[Link]
c3p0-[Link].jar
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

[Link] 1
02
Apostila Struts2 Aula

StrutsTiles

jboss-transaction-api_1.2_spec-[Link]
[Link]
[Link]
[Link]
ojdbc14-[Link].jar
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

package entity;

import [Link];

[Link];
[Link];
import

[Link];
import

[Link];
import

[Link];
import

[Link];
import

[Link];
import

[Link];
import
import

@Entity
@Table
@NamedQueries(
{@NamedQuery(name="[Link]",query="from Cliente"),
@NamedQuery(name="[Link]",
query="from Cliente c where [Link]= :param1")

public class Cliente implements


})

Serializable{
private static final long serialVersionUID = 1L;

[Link] 2
02
Apostila Struts2 Aula

StrutsTiles

@Id
@GeneratedValue(strategy=[Link])
@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) {
[Link] = idCliente;
[Link] = nome;
[Link] = email;
}

@Override
public String toString() {
return "Cliente [idCliente=" + idCliente + ", nome="
+ nome + ", email=" + email + "]";
}

public Integer getIdCliente() {


return idCliente;
}
public void setIdCliente(Integer idCliente) {
[Link] = idCliente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
[Link] = email;
}

[Link] 3
02
Apostila Struts2 Aula

StrutsTiles

public static long getSerialversionuid() {

}
return serialVersionUID;

mysql_hibernate.[Link]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
Configuration DTD 3.0//EN"
"[Link]
[Link]">
<hibernate-configuration>
<session-factory>
<property
name="[Link]">[Link]</pro
perty>
<property
name="[Link].driver_class">[Link]</
property>
<property
name="[Link]">jdbc:mysql://localhost:3306/bd_t
iles?createDatabaseIfNotExist=true</property>
<property
name="[Link]">root</property>
<property
name="[Link]">coti</property>

<property name="hibernate.format_sql">true</property>
<property name="[Link]">update</property>

<mapping class="[Link]"/>

</session-factory>
</hibernate-configuration>

package config;

import [Link];
import [Link];

[Link] 4
02
Apostila Struts2 Aula

StrutsTiles

public class Main {

public static void main(String[] args) {


new SchemaExport(new
AnnotationConfiguration().configure("config/mysql_hibernate.cfg.
xml")).create(true, true);
[Link]("Tableas geradas");
}
}

No console...
log4j:WARN No appenders could be found for logger
([Link]).
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 unique
(email)
Tableas geradas

[Link] 5
02
Apostila Struts2 Aula

StrutsTiles

package persistence;

import [Link];
import [Link];

[Link];
import

import [Link];

public class HibernateUtil {


private static final SessionFactory sessionFactory;

static {
try {
Configuration configuration = new
Configuration().configure("config/mysql_hibernate.[Link]");
StandardServiceRegistryBuilder builder = new
StandardServiceRegistryBuilder().applySettings([Link]
Properties());

[Link] 6
02
Apostila Struts2 Aula

StrutsTiles

sessionFactory =
[Link]([Link]());
} catch (HibernateException ex) {
[Link]("Initial SessionFactory creation
failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SessionFactory getSessionFactory() {

}
return sessionFactory;

public static void closeSessionFactory() {

}
[Link]();

package persistence;

import [Link];

[Link];
[Link];
import

[Link];
import

[Link];
import

[Link];
import

[Link];
import
import

import [Link];

public class ClienteDao {


Session session;
Transaction transaction;
Query query;
Criteria criteria;

public void create(Cliente c)throws Exception{


session = [Link]().openSession();
transaction = [Link]();
[Link](c);

[Link] 7
02
Apostila Struts2 Aula

StrutsTiles

[Link]();
[Link]();
}

public List<Cliente> findAll(){


session = [Link]().openSession();
List<Cliente> resp =
[Link]("[Link]").list();
[Link]();
return resp;
}

public Cliente findByCode(Integer cod)throws Exception{


session = [Link]().openSession();
Cliente cliente= (Cliente) [Link]([Link], cod);
[Link]();
return cliente;
}
}

package action;

import [Link];

import [Link];

import [Link];

import [Link];
import [Link];

import [Link];
import [Link];

public class ControleCliente extends


ActionSupport{
private Cliente cliente;
HttpServletRequest request;
private List<Cliente> lista;

private void init(){


request = (HttpServletRequest)

[Link] 8
02
Apostila Struts2 Aula

StrutsTiles

[Link]().get(ServletActionContext.HTTP_RE

}
QUEST);

public List<Cliente> getLista() {


lista = new ClienteDao().findAll();
return lista;
}
public void setLista(List<Cliente> lista) {
[Link] = lista;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
[Link] = 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();

new ClienteDao().create(cliente); //grava


try{

cliente = new Cliente(); //limpa


[Link]("msg", "Dados Gravados do Cliente ...");
//manada a mensagem
//vá para success

}catch(Exception ex){
return SUCCESS;

[Link] 9
02
Apostila Struts2 Aula

StrutsTiles

[Link]("msg", "Error :" +


[Link]());

}
return ERROR;

}
}

[Link]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
2.0//EN"
"[Link]

<struts>

<constant name="[Link]"
value="false" />
<constant name="[Link]" value="false" />
<constant name="[Link]"
value="ApplicationResources" />

<package name="default" extends="struts-default">

<result-types>
<result-type name="tiles"
class="[Link]" />
</result-types>

<action name="home" method="home"


class="[Link]">
<result name="success"
type="tiles">home</result>
<result name="error"
type="tiles">/[Link]</result>
</action>

<action name="[Link]" method="cadastrar"


class="[Link]">
<result name="success"
type="tiles">cadastro</result>

[Link] 10
02
Apostila Struts2 Aula

StrutsTiles

<result name="error"
type="tiles">/[Link]</result>
</action>

<action name="*Menu" method="{1}"


class="[Link]">
<result name="success" type="tiles">home</result>
<result name="cadastro" type="tiles">cadastro</result>
<result name="consulta" type="tiles">consulta</result>
</action>

</package>
</struts>

[Link]
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0"
xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link]
[Link]

<listener>
<listener-
class>[Link]</listener-
class>
</listener>

<context-param>
<param-name>tilesDefinitions</param-name>
<param-value>/WEB-INF/[Link]</param-value>
</context-param>

<filter>
<filter-name>struts2</filter-name>
<filter-
class>[Link]</filter-
class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>

[Link] 11
02
Apostila Struts2 Aula

StrutsTiles

</filter-mapping>
</web-app>

[Link]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration
2.0//EN"
"[Link]
<tiles-definitions>

<definition name="baseLayout" template="/[Link]">


<put-attribute name="title" value="" />
<put-attribute name="header" value="/[Link]" />
<put-attribute name="menu" value="/[Link]" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/[Link]" />
</definition>

<definition name="home" extends="baseLayout">


<put-attribute name="title" value="Welcome page" />
<put-attribute name="body" value="/[Link]" />
</definition>

<definition name="/[Link]" extends="baseLayout">


<put-attribute name="title" value="Error page" />
<put-attribute name="body" value="/[Link]" />
</definition>

<definition name="cadastro" extends="baseLayout">


<put-attribute name="title" value="Pagina de
Cadastro" />
<put-attribute name="body" value="/[Link]" />
</definition>

<definition name="consulta" extends="baseLayout">


<put-attribute name="title" value="Pagina de
Consulta" />
<put-attribute name="body" value="/[Link]" />
</definition>

</tiles-definitions>

[Link] 12
02
Apostila Struts2 Aula

StrutsTiles

[Link]
@CHARSET "ISO-8859-1";

#header {
background-position:50% 0;
background-repeat:repeat no-repeat;
}

#wrap {
margin-bottom:0;
margin-left:auto;
margin-right:auto;
margin-top:0;
overflow-x:hidden;
overflow-y:hidden;
padding-left:10px;
padding-right:10px;
position:relative;
width:980px;
min-height: 400px;

#content {
display:inline;
float:left;
font-size:100%;
line-height:1.6em;
margin:15px;
padding:5px;
text-align:left;
width:580px;
min-height: 400px;
}
#sidebar {
display:inline;
float:left;
margin:15px;
padding:5px;
width:300px;
}

[Link] 13
02
Apostila Struts2 Aula

StrutsTiles

#footer {
background-position:50% 100%;
background-repeat:repeat no-repeat;
clear:both;
height:60px;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
margin-top:0;
padding-bottom:10px;
padding-top:10px;
text-align:center;
}

[Link]
<%@ taglib uri="[Link]
prefix="tiles"%>

<!DOCTYPE HTML>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-
8">
<title><tiles:insertAttribute name="title" ignore="true"
/></title>
<link rel="stylesheet" type="text/css" media="all"
href="[Link]" />
</head>

<body id="home">
<div id="header">
<tiles:insertAttribute name="header" />
</div>

<div id="wrap">
<div id="content">
<tiles:insertAttribute name="body" />
</div>

[Link] 14
02
Apostila Struts2 Aula

StrutsTiles

<div id="sidebar">
<tiles:insertAttribute name="menu" />
</div>
</div>

<div id="footer">
<tiles:insertAttribute name="footer" />
</div>
</body>
</html>

[Link]
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<div class="container">
<h1 class="well">Struts 2 Example - Tiles</h1>
</div>

<s:property value="title" />

[Link]
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<div class="container">
<h4 class="well">
<a
href="[Link]">[Link]</a>
</h4>
</div>

<s:property value="footer" />

[Link]
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

[Link] 15
02
Apostila Struts2 Aula

StrutsTiles

<ul class="nav nav-pills nav-stacked">


<li class="active"><a href="<s:url
action="homeMenu"/>">Home</a></li>
<li><a href="<s:url
action="cadastroMenu"/>">Cadastrar</a></li>
<li><a href="<s:url
action="consultaMenu"/>">Consultar</a></li>
</ul>

[Link]
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<html>

<head>
<title>Struts 2</title>
<link rel="stylesheet" href="bootstrap/css/[Link]">
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>

</head>

<body>

<div class="container">
<div class="well">
<h2>Projeto - Template - Struts Tilles</h2>
<s:actionerror />
<s:a href="[Link]">Entrar no Sistema</s:a>
</div>
</div>
</body>

</html>

[Link] 16
02
Apostila Struts2 Aula

StrutsTiles

[Link]
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>

<head>
<%@taglib prefix="s" uri="/struts-tags"%>
<link rel="stylesheet" href="bootstrap/css/[Link]" />
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
</head>

<body>
<div class="col-sm-12">
<div class="well">
Bem vindo ao Struts 2

<a
href="[Link]
<br>

[Link] 17
02
Apostila Struts2 Aula

StrutsTiles

<p>Vamos analisar algumas das características do Struts 2 que o


ajudaram a se tornar um framework mais
amigável e produtivo ao desenvolvedor.</p>

<p>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.</p>

<p>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.</p>
</div>
</div>
</body>

</html>

[Link] 18
02
Apostila Struts2 Aula

StrutsTiles

[Link]
<!DOCTYPE html>
<html>
<head>
<%@ taglib prefix="s" uri="/struts-tags"%>
<link rel="stylesheet" href="bootstrap/css/[Link]">
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
</head>

<body>
<div class="jumbotron">
<ul class="nav nav-tabs">
<li><a href="#">Cadastrar Cliente</a>
</li>
</ul>
<p/>

<div class="row">
<s:form action="[Link]" cssClass="form1">
<div class="col-sm-10">
<label for="nome">Nome:</label>
<input type="text" id="nome" name="[Link]"
class="form-control" />
</div>

<div class="col-sm-10">
<label for="Email">Email:</label>
<input type="text" id="email" name="[Link]"
class="form-control" />
</div>

<div class="col-sm-10">
<br/>
<input type="submit" value="Cadastrar Cliente"
class="btn btn-primary" />
</div>
<p/>

<div class="col-sm-10">

[Link] 19
02
Apostila Struts2 Aula

StrutsTiles

${msg}
</div>

</s:form>
</div>
</div>
</body>
</html>

[Link] 20
02
Apostila Struts2 Aula

StrutsTiles

Cadastrando...

Cadastrado..

[Link] 21
02
Apostila Struts2 Aula

StrutsTiles

[Link]
<%@ page language="java" contentType="text/html; charset=ISO-
8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html >
<html>

<head>
<%@taglib prefix="s" uri="/struts-tags"%>
<link rel="stylesheet" href="bootstrap/css/[Link]" />
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
</head>

<body>

<div>
<ul class="nav nav-tabs">
<li class="active"><a href="#">Consultar
Cliente</a></li>
</ul>

<div class="col-sm-12">
<table class="table table-hover">
<thead>
<tr>
<th>IdCliente</th>
<th>Nome</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<s:iterator value="lista">
<tr>
<td><s:property
value="idCliente" /></td>
<td><s:property
value="nome" /></td>

[Link] 22
02
Apostila Struts2 Aula

StrutsTiles

<td><s:property
value="email" /></td>
</tr>
</s:iterator>
</tbody>
</table>
</div>
</div>
</body>

[Link] 23
02
Apostila Struts2 Aula

StrutsTiles

[Link]
error page.

[Link] 24
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

Estrutura do preojeto...

LIBS:
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
struts2-convention-plugin-[Link].jar
struts2-core-[Link].jar
[Link]
xwork-core-[Link].jar

package entity;

public class Cliente {


private Integer idCliente;
private String nome;
private String email;

[Link] 1
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

public Cliente() {
// TODO Auto-generated constructor stub
}

public Cliente(Integer idCliente, String nome, String


email) {

[Link] = idCliente;
super();

[Link] = nome;
[Link] = email;
}

@Override
public String toString() {
return "Cliente [idCliente=" + idCliente + ", nome="
+ nome + ", email=" + email + "]";
}

public Integer getIdCliente() {


return idCliente;
}
public void setIdCliente(Integer idCliente) {
[Link] = idCliente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
[Link] = email;
}

@Override
public boolean equals(Object c) {
return

}
[Link](((Cliente)c).getIdCliente());

[Link] 2
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

package action;

import [Link];
import [Link];

import [Link];

import [Link];
import [Link];
import [Link];

import [Link];
import [Link];

[Link];
import

[Link]
import

dator;

[Link];
import

import [Link];

public class ClienteAction extends


ActionSupport{
private Cliente cliente;
private List<Cliente> lista;
private Integer idEscolhido;

public Integer getIdEscolhido() {


return idEscolhido;
}
public void setIdEscolhido(Integer idEscolhido) {
[Link] = idEscolhido;
}
public ClienteAction() {
cliente = new Cliente();
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {

[Link] 3
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

[Link] = cliente;
}
public List<Cliente> getLista() {
lista = new ArrayList<Cliente>();
[Link](new Cliente(10,"joao","joao@[Link]"));
[Link](new Cliente(20,"maria","maria@[Link]"));
[Link](new Cliente(30,"ana","ana@[Link]"));
return lista;
}
public void setLista(List<Cliente> lista) {
[Link] = lista;
}

@Action(value="home", results={
@Result(name=SUCCESS,location="[Link]"),
@Result(name=INPUT,location="[Link]")})
public String init(){
getLista();

}
return SUCCESS;

@Action(value="gravar", results={
@Result(name=SUCCESS,location="[Link]"),
@Result(name=ERROR,location="[Link]")})
public String cadastrar(){
HttpServletRequest request=(HttpServletRequest)
[Link]().get(ServletActionContext.HTTP_RE
QUEST);

Cliente c = new Cliente();


try{

[Link](idEscolhido);
getLista();
cliente = [Link]([Link](c));
[Link]("msg", "<b>Cliente
Escolhido: </b>" + cliente);

}catch(Exception ex){
return SUCCESS;

[Link]();
[Link]("msg", "Error :" + [Link]());
}

}
return ERROR;

[Link] 4
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

[Link]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="[Link]
xmlns="[Link]
xmlns:web="[Link]
xsi:schemaLocation="[Link]
[Link]
id="WebApp_ID" version="3.0">

<display-name>StudentEnrollmentWithStruts</display-name>

<filter>
<filter-name>struts2</filter-name>
<filter-
class>[Link]
ecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

[Link]
<!doctype html>
<html>

<head>
<link rel="stylesheet" href="css/[Link]">
<script type="text/javascript" src="js/jquery-
[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>
</head>

<body>

<div class="container">
<div class="well">

[Link] 5
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

<h2>Struts Annotation</h2>
</div>
<a href="[Link]">Entrar no Sistema <span
class="glyphicon glyphicon-log-in"></span> </a>
</div>

</body>
</html>

[Link]
<!DOCTYPE html>
<html>

<head>
<%@ taglib prefix="s" uri="/struts-tags"%>
<link rel="stylesheet" href="css/[Link]">
<script type="text/javascript" src="js/[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>
</head>

<body>
<div class="container">

[Link] 6
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

<div class="well">
<h2>Struts Annotation</h2>
</div>

<div class="col-sm-offset-1 col-sm-10">


<div class="jumbotron">
<ul class="nav nav-tabs">
<li class="active"><a href="#">Escolher Cliente</a></li>
</ul>
<p />
<div class="row">

<s:form id="form1" action="[Link]"


theme="bootstrap" cssClass="bs-example form-horizontal"
method="post">
<div class="col-sm-10">
<s:select label="Clientes"
list="lista"
cssClass="selectpicker"
listKey="idCliente"
listValue="nome"
name="idEscolhido"
headerValue="Escolha o CLiente:"
headerKey="0"/>
</div>

<div class="col-sm-10">
<br />
<s:submit value="Enviar Dados" cssClass="btn btn-primary" />
</div>
</s:form>
<br /> ${msg}
</div>
</div>
</div>
</div>
</div>
</body>
</html>

[Link] 7
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

[Link]
<%@ page language="java" contentType="text/html; charset=ISO-
8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-
8859-1">
<title>Resposta</title>
<link rel="stylesheet" href="css/[Link]">
<script type="text/javascript" src="js/[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>
</head>

<body>
<div class="container">
<div class="well">

[Link] 8
03
Apostila Struts2 Aula

Aula03-struts_Annotation_Bootstrap

<h2>Struts Annotation</h2>
</div>

${msg}
</div>
</body>
</html>

[Link] 9
04
Apostila Struts2 Aula

struts2_crud

Estrutura do projeto...

LIBS:
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
jcommon_javadoc.jar

[Link] 1
04
Apostila Struts2 Aula

struts2_crud

jcommon_source.jar
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

package entity;

import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

@Entity
@Table
@NamedQueries({
@NamedQuery(name="[Link]",query="from Usuario"),
@NamedQuery(name="[Link]",
query="from Usuario u where [Link] =:param1 and [Link]
=:param2")

public class Usuario implements


})

Serializable{
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=[Link])
@Column

[Link] 2
04
Apostila Struts2 Aula

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) {
[Link] = idUsuario;
[Link] = email;
[Link] = nome;
[Link] = senha;
[Link] = 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) {
[Link] = idUsuario;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
[Link] = email;
}
public String getNome() {

[Link] 3
04
Apostila Struts2 Aula

struts2_crud

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

mysql_hibernate.[Link]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
Configuration DTD 3.0//EN"
"[Link]
[Link]">
<hibernate-configuration>

<session-factory>
<property
name="[Link]">[Link]</pro
perty>
<property
name="[Link].driver_class">[Link]</
property>
<property name="[Link]">
jdbc:mysql://localhost:3306/struts2?createDatabaseIfNotExist=tru
e</property>
<property
name="[Link]">root</property>

[Link] 4
04
Apostila Struts2 Aula

struts2_crud

<property
name="[Link]">coti</property>

<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="[Link]">update</property>

<mapping class="[Link]"/>

</session-factory>
</hibernate-configuration>

package config;

import [Link];
import [Link];
import [Link];

public class Main {


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

No console...

log4j:WARN No appenders could be found for logger


([Link]).
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,

[Link] 5
04
Apostila Struts2 Aula

struts2_crud

primary key (idUsuario)


)
Tabela Gerada com Sucesso ...

package type;

public enum PerfilUsuario {


//Classe Estatica(Constante)

ADMINISTRADOR("adm"),USUARIO("usu"),GUEST("guest");

private String perfil;

PerfilUsuario(String perfil){
[Link] = perfil;
}

public String getPerfil() {


return perfil;
}
}

[Link] 6
04
Apostila Struts2 Aula

struts2_crud

package control;

import [Link];

import [Link];
import [Link];
import [Link];

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 =
[Link]();
[Link]("Chegou no Intercept ------------------");
[Link]("Cache-Control", "no-cache, no-store");
[Link]("Pragma", "no-cache");
[Link]("Expires", 0);
return [Link]();
}
}

package control;

import [Link];

import [Link];
import [Link];
import [Link];

[Link] 7
04
Apostila Struts2 Aula

struts2_crud

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class Filtro implements Filter


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

{
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 = [Link]();
if ([Link]("usuario")==null){
[Link]("../[Link]");
//va para o [Link]
return; //para
}
//senão dá sequencia ...
[Link](request, response);
}

public void init(FilterConfig fConfig) throws


ServletException {
}
}

[Link] 8
04
Apostila Struts2 Aula

struts2_crud

package control;

import [Link];
import [Link];

import [Link];
import [Link];
import [Link];

import [Link];

import [Link];

import [Link];
import [Link];
import [Link];

import [Link];

public class UsuarioAction extends


ActionSupport
implements ModelDriven<Usuario>{
private static final long serialVersionUID = 1L;

//Nome do Objeto
private Usuario usuario; //Classe Usuario
private List <Usuario> lista;

HttpServletRequest request;
HttpSession session; //Irei trabalhar com Sessão

public UsuarioAction() {
usuario = new Usuario(); //espaço no Construtor
lista =new ArrayList<Usuario>(); //construtor
}

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

[Link] 9
04
Apostila Struts2 Aula

struts2_crud

}
public void setUsuario(Usuario usuario) {
[Link] = usuario;
}
public static long getSerialversionuid() {
return serialVersionUID;
}

public String listar(){


return SUCCESS;
}
public List<Usuario> getLista() {
try{
lista = new UsuarioDao().findAll();
//chamada do Banco
}catch(Exception ex){
}
return lista;
}

public void setLista(List<Usuario> lista) {


[Link] = lista;
}

public String gravar(){


request = (HttpServletRequest)
[Link]().get
(ServletActionContext.HTTP_REQUEST);
try{
new UsuarioDao().create(usuario);
getLista();
usuario = new Usuario();
[Link]("msg", "Dados Gravados");
}catch(Exception ex){
[Link]("msg", "Error :" + [Link]());
}
return SUCCESS;
}

public String logar(){


request = (HttpServletRequest)
[Link]().get
(ServletActionContext.HTTP_REQUEST);

[Link] 10
04
Apostila Struts2 Aula

struts2_crud

session = [Link](true);
try{
Usuario resp = new UsuarioDao().findByLogin(usuario);
if (resp!=null){
usuario = new Usuario();
[Link]("usuario", resp);
[Link]("msg","Logado Com Sucesso");
return SUCCESS;
} else{
[Link]("usuario", null); //limpa
}
[Link]("msg", "Usuario NAO LOGADO");
return INPUT; //[Link]
}catch(Exception ex){
[Link]("msg", "Error :" + [Link]());
return ERROR; //[Link]
}
}

public String logout(){


request = (HttpServletRequest)
[Link]().get(ServletActionContext.HTTP_REQUEST
);
session = [Link](true);
try{
[Link]("msg", null);
[Link]("usuario", null);
[Link]();
return SUCCESS;
}catch(Exception ex){
[Link]("msg","Error:" + [Link]());
}
return ERROR;
}
}

[Link] 11
04
Apostila Struts2 Aula

struts2_crud

package persistence;

import [Link];
import [Link];

public class HibernateUtil {


private static final SessionFactory sessionFactory;

static {
try {
sessionFactory = new AnnotationConfiguration().
configure("config/mysql_hibernate.[Link]").buildSessionFactory(
);
} catch (Throwable ex) {
[Link]("Initial SessionFactory creation
failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SessionFactory getSessionFactory() {


return sessionFactory;
}
}

package persistence;

import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link].SimpleMD5;

import [Link];

public class UsuarioDao {


Session session;
Transaction transaction;
Query query;
Criteria criteria;

[Link] 12
04
Apostila Struts2 Aula

struts2_crud

private void criptografia(Usuario u){


SimpleMD5 md5 = new
SimpleMD5([Link](),"cotiinformatica@gmail");
[Link]([Link]());
}

public void create(Usuario u){


criptografia(u);
session = [Link]().openSession();
transaction = [Link]();
[Link](u);
[Link]();
[Link]();
}

public Usuario findByLogin(Usuario u){


criptografia(u);
session = [Link]().openSession();
query = [Link]("[Link]");
[Link]("param1", [Link]());
[Link]("param2", [Link]());
Usuario resp=(Usuario) [Link]();
[Link]();
return resp;
}

public List<Usuario> findAll(){


session = [Link]().openSession();
query = [Link]("[Link]");
List<Usuario> lista =[Link]();
[Link]();
return lista;
}
}

[Link] 13
04
Apostila Struts2 Aula

struts2_crud

[Link]
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
2.0//EN"
"[Link]

<struts>
<package name="usuarioaction" extends="struts-default">
<interceptors>
<interceptor name="caching"
class="[Link]"/>
<interceptor-stack name="cachingStack">
<interceptor-ref name="caching" />
<interceptor-ref name="defaultStack" />
<interceptor-ref name="token"/>
</interceptor-stack>
</interceptors>

<action name="[Link]"
class="[Link]"
method="gravar">
<result name="success">/[Link]</result>
<result name="input">/[Link]</result>
<result name="error">/[Link]</result>
</action>

<action name="[Link]"
class="[Link]"
method="listar">
<result name="success">/[Link]</result>
</action>

<action name="[Link]"
class="[Link]"
method="logar">
<interceptor-ref name="cachingStack"/>
<result name="success">/usu/[Link]</result>
<result name="input">/[Link]</result>
<result name="error">/[Link]</result>
<result name="[Link]">/[Link]</result>
</action>

<action name="[Link]"

[Link] 14
04
Apostila Struts2 Aula

struts2_crud

class="[Link]"
method="logout">
<result name="input">/usu/[Link]</result>
<result name="success">/[Link]</result>
<result name="error">/[Link]</result>
</action>
</package>

</struts>

[Link]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="[Link]
xmlns="[Link]
xsi:schemaLocation="[Link]
[Link]
id="WebApp_ID" version="3.1">

<filter>
<filter-name>struts2</filter-name>
<filter-
class>[Link]</filter-
class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<session-config>
<session-timeout>30</session-timeout>
</session-config>

<welcome-file-list>
<welcome-file>[Link]</welcome-file>
</welcome-file-list>
</web-app>

[Link] 15
04
Apostila Struts2 Aula

struts2_crud

[Link]
<!doctype html>
<html>

<meta http-equiv="Pragma" content="no-cache">


<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<%
try {
[Link]("msg", null);
[Link]();
} catch (Exception ex) {
}
%>
<head>
<link rel="stylesheet" href="css/[Link]">
<script type="text/javascript" src="js/jquery-
[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>
</head>

<body>
<div class="container">
<div class="well">
<h2>Bem Vindo ao Sistema Struts2</h2>
<a href="[Link]" class="btn btn-
primary">Entrar No Sistema <span class="glyphicon glyphicon-log-
in"></span></a>
</div>

<div class="col-sm-8 col-sm-offset-2">


<div class="well">

<p>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.

[Link] 16
04
Apostila Struts2 Aula

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.</p>

</div>
</div>

</div>
</body>
</html>

[Link]
<!DOCTYPE html>
<html>

<head>
<%@ taglib prefix="s" uri="/struts-tags"%>
<link rel="stylesheet" href="css/[Link]">

[Link] 17
04
Apostila Struts2 Aula

struts2_crud

<script type="text/javascript" src="js/jquery-


[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>
</head>

<body>
<div class="container">
<div class="well">
<h2>Cadastro de Usuário em Struts2</h2>
<s:a href="[Link]" cssClass="btn btn-success">Home
<span class="glyphicon glyphicon-home"></span> </s:a>
<s:a href="[Link]" cssClass="btn btn-
warning">Consultar os Dados
<span class="glyphicon glyphicon-search"></span></s:a>
</div><!-- FECHA WELL -->

<div class="col-sm-6 col-sm-offset-3">


<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab"
href="#home">Cadastro</a></li>
<li><a data-toggle="tab"
href="#logar">Logar </a></li>
</ul>

<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<s:form method="post" action="[Link]">
<br />
<input type="hidden" name="[Link]" value="usu">

<label for="nome">Nome :</label>


<input type="text" name="[Link]" id="nome"
required="required" placeholder="Entre com Nome"
title="Entre com o Padrao no Nome" pattern="[A-Z
a-z]{3,35}" class="form-control" />

<label for="email">Email :</label>


<input type="email" name="[Link]"
id="email" required="required" placeholder="Entre com
Email" title="Entre com o Padrao no Email" class="form-
control" />

<label for="Senha">Senha :</label>


<input type="password" name="[Link]"
id="senha" required="required" placeholder="Entre com

[Link] 18
04
Apostila Struts2 Aula

struts2_crud

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


control" />
<br />
<input type="submit" value="Cadastrar Usuario"
class="btn btn-primary" />
</s:form>
</div><!-- FECHA DIV HOME -->

<!-- Até aqui cadastro, em baixo logar -->

<div id="logar" class="tab-pane fade">


<s:form method="post" action="[Link]"><br/>

<label for="email2">Email :</label>


<input type="email" name="[Link]" id="email2"
required="required" placeholder="Entre com
Email" title="Entre com o Padrao no Email" class="form-
control" />

<label for="senha2">Senha :</label>


<input type="password" name="[Link]"
id="senha2" required="required" placeholder="Entre com
Senha" title="Entre com o Padrao no Senha" class="form-
control" />
<br />

<input type="submit" value="Logar" class="btn btn-primary" />


<s:token />
</s:form>
</div><!-- FECHA DIV LOGAR -->
</div><!-- FECHA TAB CONTENT -->
<br/>

<div class="panel panel-footer">


<footer>Java WebDeveloper -
[Link]</footer>
</div><!-- FECHA PANEL FOOTER -->

${msg}
</div><!-- FECHA COL -->
</div> <!-- FECHA CONTAINER -->
</body>

</html>

[Link] 19
04
Apostila Struts2 Aula

struts2_crud

Cadastrando...

[Link] 20
04
Apostila Struts2 Aula

struts2_crud

Cadastrado...

Aba de Logar...

[Link] 21
04
Apostila Struts2 Aula

struts2_crud

Logando...

Logado...

[Link] 22
04
Apostila Struts2 Aula

struts2_crud

[Link]
<!doctype html>
<html>

<head>
<link rel="stylesheet" href="css/[Link]">
<script type="text/javascript" src="js/jquery-
[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>
</head>

<body>
<div class="container">
<div class="well">
<h2>Página de Erro do Sistema Struts2</h2>
<a href="[Link]" class="btn btn-primary">Sistema
<span class="glyphicon glyphicon-log-in"></span></a>
</div><!-- FECHA WELL -->

<div class="col-sm-8 col-sm-offset-2">


<div>${msg}</div>
</div><!-- FECHA COL -->
</div><!-- FECHA CONTAINER -->

</body>
</html>

[Link] 23
04
Apostila Struts2 Aula

struts2_crud

[Link]
<!DOCTYPE html>
<html>

<head>
<%@ taglib prefix="s" uri="/struts-tags"%>
<link rel="stylesheet" href="css/[Link]">
<script type="text/javascript" src="js/jquery-
[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>
</head>

<body>
<div class="container">
<div class="well">
<h2>Consulta Struts Usuários</h2>
<s:a href="[Link]" cssClass="btn btn-success">Home
<span class="glyphicon glyphicon-home"></span></s:a>
</div><!-- FECHA WELL -->

<div class="col-sm-8 col-sm-offset-2">


<div class="panel panel-info">

[Link] 24
04
Apostila Struts2 Aula

struts2_crud

<div class="panel-heading">
<div class="panel-title">Consulta</div>
</div><!-- FECHA PANEL HEADING -->

<div class="panel-body">
<table class="table table-hover">
<tr>
<td>Nome</td>
<td>Email</td>
<td>Perfil</td>
</tr>
<s:iterator value="lista">
<tr>
<td><s:property value="nome" /></td>
<td><s:property value="email" /></td>
<td><s:property value="perfil" /></td>
</tr>
</s:iterator>
</table>

</div><!-- FECHA PANEL-BODY -->


</div><!-- FECHA PANEL-INFO -->

<div class="panel panel-footer">


<footer>Java WebDeveloper -
[Link]</footer>
</div><!-- FECHA PANEL FOOTER -->
</div><!-- FECHA COL -->
</div><!-- FECHA CONTAINER -->

</body>
</html>

[Link] 25
04
Apostila Struts2 Aula

struts2_crud

[Link] 26
04
Apostila Struts2 Aula

struts2_crud

usu/[Link]
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="must-revalidate">

<%@ page import="[Link]"%>


<%@ taglib prefix="s" uri="/struts-tags"%>

<link rel="stylesheet" href="css/[Link]">


<script type="text/javascript" src="js/jquery-
[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>
</head>

<%
[Link]("Cache-Control", "no-cache");
[Link]("Cache-Control", "no-store");
[Link]("Expires", -1);
[Link]("Pragma", "no-cache");
%>

<body>
<div class="container">
<div class="well">
<h3>Página de Usuário Struts2</h3>
<s:a href="[Link]" cssClass="btn
btn-danger">Logout <span class="glyphicon glyphicon-log-
out"></span> </s:a>
</div>
<!-- FECHA WELL -->

<%
try {
if ([Link]("usuario") != null) {
Usuario resp = (Usuario) [Link]("usuario");
//Imprime o Nome, ScriptLet ...
[Link]([Link]());
}

[Link] 27
04
Apostila Struts2 Aula

struts2_crud

} catch (Exception ex) {


[Link]("../[Link]");
}
%>
, ${msg}

</div>
<!-- FECHA CONTAINER -->
</body>
</html>

[Link] 28
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

Estrutura do Projeto...

LIBS:
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

[Link] 1
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

[Link]
[Link]
[Link]
[Link]
[Link]

package entity;

[Link];
[Link];
import

[Link];
import

[Link];
import

[Link];
import
import

public class Cliente {


@Entity

@Id
@GeneratedValue(strategy = [Link])
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)


{
[Link] = idCliente;
[Link] = nome;
[Link] = sexo;
}

public Integer getIdCliente() {


return idCliente;
}

[Link] 2
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

public void setIdCliente(Integer idCliente) {


[Link] = idCliente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
[Link] = sexo;
}
}

mysql_hibernate.[Link]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
Configuration DTD 3.0//EN"
"[Link]
[Link]">
<hibernate-configuration>

<session-factory>
<property
name="[Link]">[Link]</pro
perty>
<property
name="[Link].driver_class">[Link]</
property>
<property
name="[Link]">jdbc:mysql://localhost:3306/stru
ts2?createDatabaseIfNotExist=true</property>
<property
name="[Link]">root</property>
<property
name="[Link]">1234</property>

<property name="hibernate.show_sql">true</property>

[Link] 3
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

<property name="hibernate.format_sql">true</property>
<property name="[Link]">true</property>

<mapping class="[Link]"/>

</session-factory>
</hibernate-configuration>

package config;

import [Link];
import [Link];
import [Link];

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);
[Link]("Tabela Cliente gerada");
}
}

No console...
log4j:WARN No appenders could be found for logger
([Link]).
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

[Link] 4
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

package persistence;

import [Link];
import [Link];

public class HibernateUtil {


private static final SessionFactory sessionFactory;

static {
try {
sessionFactory = new
AnnotationConfiguration().configure("config/mysql_hibernate.cfg.
xml").buildSessionFactory();
} catch (Throwable ex) {
[Link]("Initial SessionFactory creation
failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

[Link] 5
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

public static SessionFactory getSessionFactory() {

}
return sessionFactory;

package persistence;

import [Link];

[Link];
[Link];
import

[Link];
import

[Link];
import
import

import [Link];

public class ClienteDao {


Session session;
Transaction transaction;
Criteria criteria;
Query query;

public void create(Cliente c) throws Exception {


session = [Link]().openSession();
transaction = [Link]();
[Link](c);
[Link]();
[Link]();
}

public void update(Cliente c) throws Exception {


session = [Link]().openSession();
transaction = [Link]();
[Link](c);
[Link]();
[Link]();
}

public void delete(Cliente c) throws Exception {


session = [Link]().openSession();
transaction = [Link]();
[Link](c);

[Link] 6
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

[Link]();
[Link]();
}

public Cliente findByIde(Integer code) throws Exception{


session = [Link]().openSession();
Cliente resp = (Cliente)[Link]([Link], code);
[Link]();
return resp;
}

public List<Cliente> findAll() {


session = [Link]().openSession();
criteria = [Link]([Link]);
List<Cliente> lista = [Link]();
[Link]();
return lista;
}
}

package control;

[Link];
[Link];
import

[Link];
import

[Link];
import

[Link];
import

[Link];
import

[Link];
import
import

import [Link];

public class ClienteAction extends


ActionSupport {
private static final long serialVersionUID = 1L;

private Cliente cliente;


private String id;
private List<Cliente> clientes;

public ClienteAction() {
cliente = new Cliente();

[Link] 7
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

clientes = new ArrayList<Cliente>();


}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
[Link] = cliente;
}
public List<Cliente> getClientes() {
try {
clientes = new ClienteDao().findAll();
} catch (Exception e) {
[Link]();
}
return clientes;
}
public void setClientes(List<Cliente> clientes) {
[Link] = clientes;
}
public String getId() {
return id;
}
public void setId(String id) {
[Link] = id;
}
public static long getSerialversionuid() {

}
return serialVersionUID;

public String cadastrarCliente() {


HttpServletRequest request = (HttpServletRequest)
[Link]().get(ServletActionContext.HTTP_REQUEST
);
try {
new ClienteDao().create(cliente);
[Link]("msg", "Dados Gravados com Sucesso!");
} catch (Exception e) {
[Link]("msg", "Error: " + [Link]());
[Link]();

}
return ERROR;

}
return SUCCESS;

[Link] 8
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

public String deletarCliente() {


HttpServletRequest request = (HttpServletRequest)
[Link]().get(ServletActionContext.HTTP_REQUEST
);
try {
Integer idCliente = new Integer(id);
cliente = new ClienteDao().findByIde(idCliente);
new ClienteDao().delete(cliente);
[Link]("msg", "Cliente Deletado com Sucesso!");
} catch (Exception e) {
[Link]("msg", "Error: " + [Link]());

}
return ERROR;

}
return SUCCESS;

public String listarClientes() {

}
return SUCCESS;

[Link]
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
2.0//EN"
"[Link]

<struts>
<package name="clienteaction" extends="struts-default">

<action name="[Link]"
class="[Link]" method="cadastrarCliente">
<result name="success">/[Link]</result>
<result name="error">/[Link]</result>
</action>

<action name="[Link]"
class="[Link]" method="deletarCliente">
<result name="success">/[Link]</result>
<result name="error">/[Link]</result>
</action>

[Link] 9
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

<action name="[Link]"
class="[Link]" method="listarClientes">
<result name="success">/[Link]</result>
</action>
</package>
</struts>

[Link]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="[Link]
xmlns="[Link]
xsi:schemaLocation="[Link]
[Link]
version="2.5">

<filter>
<filter-name>struts2</filter-name>
<filter-
class>[Link]</filter-
class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<session-config>
<session-timeout>30</session-timeout>
</session-config>

<welcome-file-list>
<welcome-file>[Link]</welcome-file>
</welcome-file-list>

</web-app>

[Link] 10
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

[Link]
<!DOCTYPE html>
<html lang ="pt-BR">
<head>
<meta charset="utf-8">
<title>Struts2</title>

<link rel="stylesheet" type="text/css"


href="css/[Link]"/>
<script type="text/javascript"
src="js/[Link]"></script>

</head>
<body>
<h2 class="jumbotron">Projeto STRUTS 2.0</h2>
<div class="container">
<a href="[Link]" class="btn btn-success">
<span class="glyphicon glyphicon-floppy-disk"></span>
Cadastrar </a>

<a href="[Link]" class="btn btn-warning">


<span class="glyphicon glyphicon-search"></span> Consultar
</a>

<div class="conteudo">

<h2>Struts 2 / Spring MVC / JSF - MVC</h2>


<p>
<a
href="[Link]
<br/>
Struts 2 Segue um padrao (XML), configuração ,
forma de trabalhar ...<br/>
Quem comando o Projeto Todo ([Link]) _ 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</p>

<p>
Struts2 Voce tem FrameWork Potente em relacao a
Defesa a Segurança ....
</p>

[Link] 11
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

</div><!-- FECHA CONTEUDO -->


</div><!-- FECHA CONTAINER -->
<br/><br/>
<br/><br/>
<br/><br/>
<div class="panel panel-footer" >
<blockquote class="blockquote-reverse">
<footer>Website by JavaWebDeveloper Tarde</footer>
</blockquote>
</div><!-- FECHA PANEL-FOOTER-->
</body>
</html>

[Link]
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-
8859-1">
<title>Cadastro</title>

[Link] 12
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

<link rel="stylesheet" type="text/css" href="css/[Link]"


/>
<script type="text/javascript" src="js/jquery-
[Link]"></script>
<script type="text/javascript" src="js/[Link]"></script>

</head>
<body>
<h2 class="jumbotron">Projeto STRUTS 2.0</h2>
<div class="container">
<a href="[Link]" class="btn btn-primary"> <span
class="glyphicon glyphicon-home"></span> Home
</a>&nbsp;
<button class="btn btn-success" data-
toggle="modal" data-target="#janela"> Cadastrar Cliente <span
class="glyphicon glyphicon-user"></span>
</button>
<a href="[Link]" class="btn btn-
warning">
<span class="glyphicon glyphicon-search"></span> Consultar
Cliente
</a><br /> <br />

<!-- janela modal -->


<div class="modal fade" id="janela">
<div class="modal-dialog">
<div class="modal-content">

<div class="modal-header">
<h3>Cadastro de Usuário</h3>
</div>

<div class="modal-body">

<s:form action="[Link]" method="post">


<div class="form-group">
<label>Nome:</label>
<input type="text" class="form-control" name="[Link]">
</div><!-- FECHA FORM-GROUP -->

<div class="form-group">
<label>Sexo:</label>
<input type="radio" name="[Link]" value="m"

[Link] 13
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

checked="checked" >Masculino
<input type="radio" name="[Link]" value="f">Feminino
</div><!-- FECHA FORM-GROUP -->

<div class="panel panel-footer">


<button type="submit" class="btn btn-success">
<span class="glyphicon glyphicon-floppy-disk"></span>
Gravar Cliente
</button>
<span>&nbsp; ${msg}</span>
</div><!-- FECHA PANEL-FOOTER -->

</s:form>
</div><!-- FECHA DIV MODAL-BODY -->
</div><!-- FECHA MDOAL CONTENT -->
</div><!-- FECHA MODAL-DIALOG -->
</div><!-- FECHA MODAL FADE -->
</div><!-- FECHA CONTAINER -->
</body>
</html>

[Link] 14
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

Clicando em cadastrar...

Cadastrando...

[Link] 15
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

[Link]
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<title>Consulta</title>

<link rel="stylesheet" type="text/css"


href="css/[Link]"/>
<script type="text/javascript"
src="js/[Link]"></script>

<s:head/></head>

<h2 class="jumbotron">Projeto STRUTS 2.0</h2>

<div class="container">

<a href="[Link]" class="btn btn-primary">


<span class="glyphicon glyphicon-home"></span> Home
</a>&nbsp;
<a href="[Link]" class="btn btn-success">
<span class="glyphicon glyphicon-floppy-disk"></span>
Cadastrar Cliente
</a>&nbsp;
<a href="[Link]" class="btn btn-warning">
<span class="glyphicon glyphicon-search"></span>
Consultar Cliente
</a><br/><br/>

<h4>${msg}</h4>

<div class="col-sm-8 col-sm-offset-2">


<div class="panel panel-primary">
<div class="panel-heading">Consulta de Clientes
</div><!-- FECHA PANEL-HEADING -->
<table class="table table-hover">
<tr>
<td><b>idCliente</b></td>
<td><b>Nome</b></td>
<td><b>Sexo</b></td>

[Link] 16
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

<td><b>Excluir</b></td>
</tr>

<s:iterator value="clientes" id="linha">


<tr>
<td> <s:property value="idCliente"/> </td>
<td> <s:property value="nome"/> </td>
<td> <s:property value="sexo"/> </td>
<td>
<s:form action="[Link]">
<s:hidden name="id" value="%{idCliente}"></s:hidden>
<button type="submit" class="btn btn-danger">
<span class="glyphicon glyphicon-trash"></span>
</button>
</s:form>
</td>
</tr>
</s:iterator>
</table>
</div><!-- FECHA PANEL-PRIMARY -->
</div><!-- FECHA DIV COL-SM -->
</div><!-- FECHA CONTAINER -->
<div class="panel panel-footer" >
<blockquote class="blockquote-reverse">
<footer>Website by JavaWebDeveloper Tarde</footer>
</blockquote>
</div><!-- FECHA PANEL-FOOTER-->

</body>
</html>

[Link] 17
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

Apagando carol...

[Link] 18
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

[Link]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<title>Erro</title>

<link rel="stylesheet" type="text/css"


href="css/[Link]"/>
<script type="text/javascript"
src="js/[Link]"></script>

<style type="text/css">
body {
background-image: url("img/[Link]");
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
}
</style>
</head>

<body>
<div class="container">
<br/>
<a href="[Link]" class="btn btn-primary">
<span class="glyphicon glyphicon-home"></span> Home
</a>
<h4>${msg}</h4>
</div><!-- FECHA CONTAINER -->
</body>
</html>

[Link] 19
05
Apostila Struts2 Aula

Struts Cadastrar, Modal, Consultar

[Link] 20
06
Apostila Struts2 Aula

Struts Select Bootstrap

Estrutura do projeto...

LIBS:
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
struts2-convention-plugin-[Link].jar
struts2-core-[Link].jar
[Link]
xwork-core-[Link].jar

[Link] 1
06
Apostila Struts2 Aula

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();
[Link] = idCliente;
[Link] = nome;
[Link] = email;
}

@Override
public String toString() {
return "Cliente [idCliente=" + idCliente + ", nome="
+ nome + ", email=" + email + "]";
}

public Integer getIdCliente() {


return idCliente;
}
public void setIdCliente(Integer idCliente) {
[Link] = idCliente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
[Link] = email;
}

[Link] 2
06
Apostila Struts2 Aula

Struts Select Bootstrap

@Override
public boolean equals(Object c) {
return
[Link](((Cliente)c).getIdCliente());
}
}

package action;

import [Link];
import [Link];

import [Link];

import [Link];

import [Link];
import [Link];

import [Link];

public class ClienteAction extends


ActionSupport{
private Cliente cliente;
private List<Cliente> lista;
private Integer idEscolhido;

public Integer getIdEscolhido() {


return idEscolhido;
}
public void setIdEscolhido(Integer idEscolhido) {
[Link] = idEscolhido;
}
public ClienteAction() {
cliente = new Cliente();
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
[Link] = cliente;
}

[Link] 3
06
Apostila Struts2 Aula

Struts Select Bootstrap

public List<Cliente> getLista() {


lista = new ArrayList<Cliente>();
[Link](new Cliente(10,"joao","joao@[Link]"));
[Link](new Cliente(20,"maria","maria@[Link]"));
[Link](new Cliente(30,"ana","ana@[Link]"));
return lista;
}

public void setLista(List<Cliente> lista) {


[Link] = lista;
}
public String init(){
getLista();
return SUCCESS;
}

public String enviar(){


HttpServletRequest request=(HttpServletRequest)
[Link]().get(ServletActionContext.HTTP_RE

try{
QUEST);

Cliente c = new Cliente();


[Link](idEscolhido);
getLista();
cliente = [Link]([Link](c));
[Link]("msg", "Cliente Escolhido: " + cliente);
return SUCCESS;
}catch(Exception ex){
[Link]();
[Link]("msg", "Error :" + [Link]());
}
return ERROR;
}
}

[Link]
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
2.0//EN"
"[Link]

[Link] 4
06
Apostila Struts2 Aula

Struts Select Bootstrap

<struts>

<package name="clienteaction" extends="struts-default">

<action name="home"
class="[Link]"
method="init">
<result name="success">/[Link]</result>
</action>

<action name="[Link]"
class="[Link]"
method="enviar">
<result name="success">/[Link]</result>
<result name="error">/[Link]</result>
</action>

</package>
</struts>

[Link]
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0"
xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link]
[Link]
<display-name>struts2_select_bootstrap</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-
class>[Link]
ecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>

[Link] 5
06
Apostila Struts2 Aula

Struts Select Bootstrap

[Link]
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-
8859-1">
<link rel="stylesheet" href="bootstrap//css/[Link]">
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<title>Index</title>
</head>

<body>
<div class="container">
<div class="well">
<h2><center>Sistema Struts2</center></h2>
<a href="[Link]" class="btn btn-primary">
<span class="glyphicon glyphicon-log-in"></span>
Entrar no Sistema</a>
</div>
</div>
</body>
</html>

[Link] 6
06
Apostila Struts2 Aula

Struts Select Bootstrap

[Link]
<!DOCTYPE html>
<html>
<head>

<%@ taglib prefix="s" uri="/struts-tags"%>


<link rel="stylesheet" href="bootstrap//css/[Link]">
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
</head>

<body>
<div class="container">
<div class="col-sm-offset-1 col-sm-10">
<div class="jumbotron">
<ul class="nav nav-tabs">
<li class="active"><a
href="#">Escolher Cliente</a></li>
</ul><p />

[Link] 7
06
Apostila Struts2 Aula

Struts Select Bootstrap

<div class="row">
<div class="col-sm-6 col-sm-offset-2">
<s:form id="form1" action="[Link]"
cssClass="form" method="post">
<s:select list="lista"
cssClass="form-control"
listKey="idCliente"
listValue="nome"
name="idEscolhido"
headerValue="Escolha o CLiente"
headerKey="0" />
<br/>
<s:submit value="Enviar Dados" cssClass="btn btn-primary" />
</s:form>
<br /> ${msg}
</div>
</div>
</div>
</div>
</div>
</body>

</html>

[Link] 8
06
Apostila Struts2 Aula

Struts Select Bootstrap

Escolhendo o cliente...

[Link]
<%@ page language="java" contentType="text/html; charset=ISO-
8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"[Link]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-
8859-1">
<link rel="stylesheet" href="bootstrap//css/[Link]">
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<script type="text/javascript"
src="bootstrap/js/[Link]"></script>
<title>Resposta</title>
</head>

<body>

[Link] 9
06
Apostila Struts2 Aula

Struts Select Bootstrap

<div class="container">
<div class="well">
<h3><center>Resposta da Seleção</center></h3>
<a href="[Link]" class="btn btn-primary"><span
class="glyphicon glyphicon-home"></span> Home</a>
</div>

<div class="well">
${msg}
</div>
</div>

</body>
</html>

[Link] 10

Você também pode gostar