Você está na página 1de 46

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

- VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 1 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Action public class AdicionaContato implements Action {
Action public class AdicionaContato implements Action {
Action public class AdicionaContato implements Action {
Action public class AdicionaContato implements Action {
Action public class AdicionaContato implements Action {

Action

Action public class AdicionaContato implements Action { public
Action public class AdicionaContato implements Action { public

public class AdicionaContato implements Action {

public String executa(HttpServletRequest req, HttpServletResponse res) throws Exception{ Contato contato = new Contato(); contato.setNome(req.getParameter("nome")); contato.setEndereco(req.getParameter("endereco")); contato.setEmail(req.getParameter("email"));

ContatoDao dao = new ContatoDao(); dao.adiciona(contato);

return "/ok.jsp";

}

}

dao.adiciona(contato); return "/ok.jsp" ; } } HttpServletRequest getParameter Action HttpServletRequest
dao.adiciona(contato); return "/ok.jsp" ; } } HttpServletRequest getParameter Action HttpServletRequest

HttpServletRequest

return "/ok.jsp" ; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse

getParameter

"/ok.jsp" ; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse Connection 2

Action HttpServletRequest HttpServletResponse

; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse Connection 2 de 46 27/04/2017 14:22
; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse Connection 2 de 46 27/04/2017 14:22
; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse Connection 2 de 46 27/04/2017 14:22

Connection

; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse Connection 2 de 46 27/04/2017 14:22
; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse Connection 2 de 46 27/04/2017 14:22
; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse Connection 2 de 46 27/04/2017 14:22
; } } HttpServletRequest getParameter Action HttpServletRequest HttpServletResponse Connection 2 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

public class AdicionaContato extends Action { public

public class AdicionaContato extends Action {

public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception {

Contato contato = ((ContatoForm) form).getContato();

ContatoDao dao = new ContatoDao(); dao.adiciona(contato);

return map.findForward("ok");

}

}

action form
action form
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22

ActionForm

dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22
dao.adiciona(contato); return map.findForward( "ok" ); } } action form ActionForm 3 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Action public class AdicionaContato { public
Action public class AdicionaContato { public

Action

public class AdicionaContato { public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception { Contato contato = ((ContatoForm) form).getContato();

ContatoDao dao = new ContatoDao(); dao.adiciona(contato);

return map.findForward("ok");

}

}

execute adiciona
execute
adiciona
map.findForward( "ok" ); } } execute adiciona execute response request public class AdicionaContato {

execute

"ok" ); } } execute adiciona execute response request public class AdicionaContato { public
response
response

request

); } } execute adiciona execute response request public class AdicionaContato { public ActionForward

public class AdicionaContato { public ActionForward adiciona(ActionMapping map, ActionForm form) throws Exception {

Contato contato = ((ContatoForm) form).getContato();

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

dao.adiciona(contato);
dao.adiciona(contato);

return map.findForward("ok");

}

}

return map.findForward( "ok" ); } } ActionForward "ok" ActionMapping public class
return map.findForward( "ok" ); } } ActionForward "ok" ActionMapping public class

ActionForward

return map.findForward( "ok" ); } } ActionForward "ok" ActionMapping public class AdicionaContato {

"ok"

"ok" ); } } ActionForward "ok" ActionMapping public class AdicionaContato { public void
"ok" ); } } ActionForward "ok" ActionMapping public class AdicionaContato { public void
"ok" ); } } ActionForward "ok" ActionMapping public class AdicionaContato { public void
"ok" ); } } ActionForward "ok" ActionMapping public class AdicionaContato { public void

ActionMapping

public class AdicionaContato { public void adiciona(ActionForm form) throws Exception

{

Contato contato = ((ContatoForm) form).getContato();

ContatoDao dao = new ContatoDao(); dao.adiciona(contato);

}

}

ActionForm Contato Contato
ActionForm
Contato
Contato
dao.adiciona(contato); } } ActionForm Contato Contato ContatoForm public class AdicionaContato { public void

ContatoForm

public class AdicionaContato {

public void adiciona(Contato contato) throws Exception

{

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

dao.adiciona(contato);
dao.adiciona(contato);

}

}

dao.adiciona(contato); } } request response Funcionario public class AdicionaContato {
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato {
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato {
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato {
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato {
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato {
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato {
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato {

request response

dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public
dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public

Funcionario

dao.adiciona(contato); } } request response Funcionario public class AdicionaContato { public

public class AdicionaContato {

public AdicionaContato(Funcionario funcionario) { // o parametro é o funcionario logado no sistema

}

public void adiciona(Contato contato) throws Exception

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

ContatoDao dao = new ContatoDao(); dao.adiciona(contato);

ContatoDao dao = new ContatoDao(); dao.adiciona(contato);

}

}

ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22
ContatoDao dao = new ContatoDao(); dao.adiciona(contato); } } 7 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue

Produto

Produto @Entity public class Produto { @Id @GeneratedValue
Produto @Entity public class Produto { @Id @GeneratedValue

@Entity public class Produto {

@Id @GeneratedValue private Long id;

private String nome;

private Double preco;

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

// getters e setters
// getters e setters

}

// getters e setters } ProdutoDAO public class ProdutoDAO { private Session

ProdutoDAO

// getters e setters } ProdutoDAO public class ProdutoDAO { private Session session; public
// getters e setters } ProdutoDAO public class ProdutoDAO { private Session session; public

public class ProdutoDAO {

private Session session;

public ProdutoDao() { this.session = new HibernateUtil().getSession();

}

public void adiciona(Produto p) { Transaction tx = session.beginTransaction(); session.save(p); tx.commit();

}

public void atualiza(Produto p) { Transaction tx = session.beginTransaction(); session.update(p); tx.commit();

}

public void remove(Produto p) { Transaction tx = session.beginTransaction(); session.delete(p); tx.commit();

}

@SuppressWarnings("unchecked") public List<Produto> lista() { return session.createCriteria(Produto.class).list();

}

}

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Produto @Resource public class ProdutoController { public
Produto @Resource public class ProdutoController { public
Produto @Resource public class ProdutoController { public
Produto @Resource public class ProdutoController { public
Produto
Produto

@Resource public class ProdutoController {

public void adiciona(Produto produto) { new ProdutoDao().adiciona(produto);

}

}

produto) { new ProdutoDao().adiciona(produto); } } atualiza @Resource public class ProdutoController { // a
produto) { new ProdutoDao().adiciona(produto); } } atualiza @Resource public class ProdutoController { // a
produto) { new ProdutoDao().adiciona(produto); } } atualiza @Resource public class ProdutoController { // a
atualiza
atualiza
{ new ProdutoDao().adiciona(produto); } } atualiza @Resource public class ProdutoController { // a ação

@Resource public class ProdutoController {

// a ação adiciona public void adiciona(Produto produto) { new ProdutoDao().adiciona(produto);

}

// a ação atualiza public void atualiza(Produto produto) { new ProdutoDao().atualiza(produto);

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
@Resource ProdutoController adiciona /produto /adiciona 11
@Resource ProdutoController adiciona /produto /adiciona 11
@Resource ProdutoController adiciona /produto /adiciona 11

@Resource

@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46
@Resource ProdutoController adiciona /produto /adiciona 11 de 46

ProdutoController

@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22
@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22

adiciona

@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22
@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22

/produto

/adiciona

@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22
@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22
@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22
@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22
@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22
@Resource ProdutoController adiciona /produto /adiciona 11 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

<html> Seu produto foi adicionado com sucesso!
<html> Seu produto foi adicionado com sucesso!
<html> Seu produto foi adicionado com sucesso!
<html> Seu produto foi adicionado com sucesso!
<html> Seu produto foi adicionado com sucesso!
<html> Seu produto foi adicionado com sucesso!
<html> Seu produto foi adicionado com sucesso!

<html> Seu produto foi adicionado com sucesso!<br/> </html>

produto adiciona
produto
adiciona
com sucesso! <br/> </html> produto adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result

/adiciona.jsp

WebContent/WEB-INF/jsp/produto

adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result @Resource public class ProdutoController { private
adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result @Resource public class ProdutoController { private
adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result @Resource public class ProdutoController { private

Result

adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result @Resource public class ProdutoController { private
adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result @Resource public class ProdutoController { private
adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result @Resource public class ProdutoController { private
adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result @Resource public class ProdutoController { private
adiciona /adiciona.jsp WebContent/WEB-INF/jsp/produto Result @Resource public class ProdutoController { private

@Resource public class ProdutoController { private Result result;

public ProdutoController(Result result) { this.result = result;

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

// a ação adiciona public void adiciona(Produto produto)

// a ação adiciona public void adiciona(Produto produto) { new ProdutoDao().adiciona(produto); result.forwardTo("/WEB-INF/jsp/outroLugar.jsp");

}

}

"/WEB-INF/jsp/outroLugar.jsp" ); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void

WEB-INF/jsp/outroLugar.jsp

); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) {
); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) {
); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) {
); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) {
); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) {
); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) {

Result

); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) {
); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) {

Controller

); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) { dao.remove(produto);
); } } WEB-INF/jsp/outroLugar.jsp Result Controller public void remove(Produto produto) { dao.remove(produto);

public void remove(Produto produto) { dao.remove(produto); result.redirectTo(ProdutoController.class).lista();

}

produto) { dao.remove(produto); result.redirectTo(ProdutoController.class).lista(); } 13 de 46 27/04/2017 14:22
produto) { dao.remove(produto); result.redirectTo(ProdutoController.class).lista(); } 13 de 46 27/04/2017 14:22
produto) { dao.remove(produto); result.redirectTo(ProdutoController.class).lista(); } 13 de 46 27/04/2017 14:22
produto) { dao.remove(produto); result.redirectTo(ProdutoController.class).lista(); } 13 de 46 27/04/2017 14:22
produto) { dao.remove(produto); result.redirectTo(ProdutoController.class).lista(); } 13 de 46 27/04/2017 14:22
produto) { dao.remove(produto); result.redirectTo(ProdutoController.class).lista(); } 13 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor @Resource VRaptor public class ProdutoController {
VRaptor
VRaptor
VRaptor @Resource VRaptor public class ProdutoController { public
VRaptor @Resource VRaptor public class ProdutoController { public
VRaptor @Resource VRaptor public class ProdutoController { public
VRaptor @Resource VRaptor public class ProdutoController { public
VRaptor @Resource VRaptor public class ProdutoController { public
VRaptor @Resource VRaptor public class ProdutoController { public

@Resource

VRaptor

public class ProdutoController { public void formulario() {

}

}

class ProdutoController { public void formulario() { } } /produto/formulario adiciona produto <html>
class ProdutoController { public void formulario() { } } /produto/formulario adiciona produto <html>

/produto/formulario

{ public void formulario() { } } /produto/formulario adiciona produto <html> <form action=
{ public void formulario() { } } /produto/formulario adiciona produto <html> <form action=
{ public void formulario() { } } /produto/formulario adiciona produto <html> <form action=

adiciona

produto

formulario() { } } /produto/formulario adiciona produto <html> <form action= "produto/adiciona"

<html> <form action="produto/adiciona"> Nome: <input name="produto.nome"/><br/> Descricao: <input name="produto.descricao"/><br/> Preço: <input name="produto.preco"/><br/> Data de início de venda: <input name="produto.dataInicioVenda"/><br/> <input type="submit"/> </form> </html>

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

@Resource public class ProdutoController { public void
@Resource public class ProdutoController { public void
@Resource public class ProdutoController { public void
@Resource public class ProdutoController { public void
@Resource public class ProdutoController { public void
@Resource public class ProdutoController { public void

@Resource public class ProdutoController {

public void lista() { new ProdutoDao().lista();

}

}

{ public void lista() { new ProdutoDao().lista(); } } return public List<Produto> lista() { return new
{ public void lista() { new ProdutoDao().lista(); } } return public List<Produto> lista() { return new
{ public void lista() { new ProdutoDao().lista(); } } return public List<Produto> lista() { return new
{ public void lista() { new ProdutoDao().lista(); } } return public List<Produto> lista() { return new

return

void lista() { new ProdutoDao().lista(); } } return public List<Produto> lista() { return new
void lista() { new ProdutoDao().lista(); } } return public List<Produto> lista() { return new
void lista() { new ProdutoDao().lista(); } } return public List<Produto> lista() { return new

public List<Produto> lista() { return new ProdutoDao().lista();

}

} } return public List<Produto> lista() { return new ProdutoDao().lista(); } 15 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
ProdutoController lista
ProdutoController
lista
ProdutoController lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib
ProdutoController lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib
ProdutoController lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib
ProdutoController lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib
ProdutoController lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib

lista.jsp

ProdutoController lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib

WebContent/WEB-INF/jsp/produto/

lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib
lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib
lista lista.jsp WebContent/WEB-INF/jsp/produto/ <%@ taglib

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"

prefix="c" %>

prefix="c" %> <%@ taglib

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"

prefix="fmt" %>

<h1>Produtos</h1>

<table> <c:forEach var="produto" items="${produtoList}"> <tr> <td>${produto.nome}</td> <td>${produto.preco}</td> <td>${produto.descricao}</td> <td><fmt:formatDate pattern="dd/MM/yyyy" value="${produto.dataInicioVenda.time}" /> </td> </tr> </c:forEach> </table>

</tr> </c:forEach> </table> http://localhost:8080/controle- produtos/produto/lista 16 de

http://localhost:8080/controle-

produtos/produto/lista

</c:forEach> </table> http://localhost:8080/controle- produtos/produto/lista 16 de 46 27/04/2017 14:22
</c:forEach> </table> http://localhost:8080/controle- produtos/produto/lista 16 de 46 27/04/2017 14:22
</c:forEach> </table> http://localhost:8080/controle- produtos/produto/lista 16 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 17 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
GeraTabela main ProdutoController

GeraTabela

GeraTabela main ProdutoController br.com.caelum.produtos.controller
main
main
GeraTabela main ProdutoController br.com.caelum.produtos.controller
GeraTabela main ProdutoController br.com.caelum.produtos.controller
GeraTabela main ProdutoController br.com.caelum.produtos.controller

ProdutoController

br.com.caelum.produtos.controller

main ProdutoController br.com.caelum.produtos.controller @Resource @Resource public class ProdutoController {
main ProdutoController br.com.caelum.produtos.controller @Resource @Resource public class ProdutoController {
main ProdutoController br.com.caelum.produtos.controller @Resource @Resource public class ProdutoController {
main ProdutoController br.com.caelum.produtos.controller @Resource @Resource public class ProdutoController {

@Resource

br.com.caelum.produtos.controller @Resource @Resource public class ProdutoController { public

@Resource public class ProdutoController {

public List<Produto> lista() { return new ProdutoDao().lista();

}

}

lista.jsp /produto
lista.jsp
/produto
{ return new ProdutoDao().lista(); } } lista.jsp /produto WebContent/WEB-INF/jsp <%@ taglib

WebContent/WEB-INF/jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"} } lista.jsp /produto WebContent/WEB-INF/jsp prefix="c" %> <%@ taglib

prefix="c" %>

prefix="c" %> <%@ taglib

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"

prefix="fmt" %>

<h1>Produtos</h1>

<table> <c:forEach var="produto" items="${produtoList}"> <tr> <td>${produto.nome}</td> <td>${produto.preco}</td> <td>${produto.descricao}</td>

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

value= "${produto.dataInicioVenda.time}" />

value="${produto.dataInicioVenda.time}" /> </td> </tr> </c:forEach> </table>

</tr> </c:forEach> </table> /produto/lista http://localhost:8080/controle-produtos

/produto/lista

http://localhost:8080/controle-produtos

/produto/lista http://localhost:8080/controle-produtos ProdutoController adiciona @Resource public class
/produto/lista http://localhost:8080/controle-produtos ProdutoController adiciona @Resource public class

ProdutoController

http://localhost:8080/controle-produtos ProdutoController adiciona @Resource public class ProdutoController { // a

adiciona

@Resource public class ProdutoController {

// a ação adiciona public void adiciona(Produto produto) { new ProdutoDao().adiciona(produto);

}

}

adiciona
adiciona
{ new ProdutoDao().adiciona(produto); } } adiciona ProdutoController Result @Resource public class

ProdutoController

Result

} } adiciona ProdutoController Result @Resource public class ProdutoController { private

@Resource public class ProdutoController { private Result result;

public ProdutoController(Result result) { this.result = result;

}

//método para fazer a listagem

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

new ProdutoDao().adiciona(produto);

new ProdutoDao().adiciona(produto); result.redirectTo(ProdutoController.class).lista();

}

}

result.redirectTo(ProdutoController.class).lista(); } } @Resource public class ProdutoController { public void

@Resource public class ProdutoController {

public void formulario() {

}

}

class ProdutoController { public void formulario() { } } INF/jsp/produto formulario.jsp WebContent/WEB- <%@

INF/jsp/produto

formulario.jsp

void formulario() { } } INF/jsp/produto formulario.jsp WebContent/WEB- <%@ taglib

WebContent/WEB-

{ } } INF/jsp/produto formulario.jsp WebContent/WEB- <%@ taglib tagdir="/WEB-INF/tags"

<%@ taglib tagdir="/WEB-INF/tags" prefix="caelum" %>

<%@ taglib

uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <script type="text/javascript"

src="<c:url value="

/js/jquery.js"

/>">

</script> <script type="text/javascript"

src="<c:url value="

/js/jquery-ui.js"

/>">

</script> <link type="text/css" href="<c:url value="

 

/css/jquery.css"

/>"

rel="stylesheet" /> </head> <body> <form action="<c:url value="

/produto/adiciona"

/>">

Nome: <input name="produto.nome"/><br/> Descricao: <input name="produto.descricao"/><br/> Preço: <input name="produto.preco"/><br/>

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

name= "produto.dataInicioVenda" /> <br

name="produto.dataInicioVenda"/> <br /> <input type="submit"/> </form> </body> </html>

/> </form> </body> </html> formulario.jsp javax.servlet
/> </form> </body> </html> formulario.jsp javax.servlet

formulario.jsp/> </form> </body> </html> javax.servlet http://localhost:8080/controle-produtos

</body> </html> formulario.jsp javax.servlet http://localhost:8080/controle-produtos
javax.servlet
javax.servlet
</body> </html> formulario.jsp javax.servlet http://localhost:8080/controle-produtos /produto/formulario
</body> </html> formulario.jsp javax.servlet http://localhost:8080/controle-produtos /produto/formulario

http://localhost:8080/controle-produtos

/produto/formulario

http://localhost:8080/controle-produtos /produto/formulario lista.jsp <c:forEach var= "produto" items=
http://localhost:8080/controle-produtos /produto/formulario lista.jsp <c:forEach var= "produto" items=
lista.jsp
lista.jsp

<c:forEach var="produto" items="${produtoList}"> <tr> <td>${produto.nome}</td> <td>${produto.preco}</td> <td>${produto.descricao}</td> <td> <fmt:formatDate pattern="dd/MM/yyyy" value="${produto.dataInicioVenda.time}"/> </td> <td>

<a href="<c:url value=" />?produto.id=${produto.id}"> Remover

/produto/remove"

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

</tr>
</tr>

</c:forEach>

</tr> </c:forEach> ProdutoController public void remove(Produto produto) {

ProdutoController

</tr> </c:forEach> ProdutoController public void remove(Produto produto) { new
</tr> </c:forEach> ProdutoController public void remove(Produto produto) { new

public void remove(Produto produto) { new ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista();

}

ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22

Controller

ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22
ProdutoDao().remove(produto); result.redirectTo(ProdutoController.class).lista(); } Controller 22 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
ProdutoController adiciona remove lista ProdutoDao

ProdutoController

ProdutoController adiciona remove lista ProdutoDao ProdutoController
adiciona remove lista
adiciona remove lista

ProdutoDao

ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController
ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController
ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController
ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController
ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController
ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController
ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController
ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController
ProdutoController adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController

ProdutoController

adiciona remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController ProdutoDao

Controller

remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController ProdutoDao Controller public
remove lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController ProdutoDao Controller public

ProdutoDao

lista ProdutoDao ProdutoController Controller ProdutoDao ProdutoController ProdutoDao Controller public class

ProdutoController

ProdutoController Controller ProdutoDao ProdutoController ProdutoDao Controller public class ProdutoController {
ProdutoController Controller ProdutoDao ProdutoController ProdutoDao Controller public class ProdutoController {

ProdutoDao

Controller ProdutoDao ProdutoController ProdutoDao Controller public class ProdutoController { private

Controller

public class ProdutoController { private Result result; private ProdutoDao produtoDao;

public ProdutoController(Result result, ProdutoDao produtoDao) { this.result = result; this.produtoDao = produtoDao;

}

//métodos para adicionar, excluir e listar produtos

}

this .produtoDao = produtoDao; } //métodos para adicionar, excluir e listar produtos } 23 de 46

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

ProdutoDao
ProdutoDao
ProdutoDao ProdutoDao @Component ProdutoDao HibernateProdutoDao

ProdutoDao

@Component

ProdutoDao ProdutoDao @Component ProdutoDao HibernateProdutoDao HibernateProdutoDao
ProdutoDao ProdutoDao @Component ProdutoDao HibernateProdutoDao HibernateProdutoDao

ProdutoDao

ProdutoDao ProdutoDao @Component ProdutoDao HibernateProdutoDao HibernateProdutoDao ProdutoDao
ProdutoDao ProdutoDao @Component ProdutoDao HibernateProdutoDao HibernateProdutoDao ProdutoDao
ProdutoDao ProdutoDao @Component ProdutoDao HibernateProdutoDao HibernateProdutoDao ProdutoDao

HibernateProdutoDao

ProdutoDao @Component ProdutoDao HibernateProdutoDao HibernateProdutoDao ProdutoDao @Component public class
ProdutoDao @Component ProdutoDao HibernateProdutoDao HibernateProdutoDao ProdutoDao @Component public class

HibernateProdutoDao

ProdutoDao HibernateProdutoDao HibernateProdutoDao ProdutoDao @Component public class ProdutoDao {

ProdutoDao

HibernateProdutoDao HibernateProdutoDao ProdutoDao @Component public class ProdutoDao { //construtor e
HibernateProdutoDao HibernateProdutoDao ProdutoDao @Component public class ProdutoDao { //construtor e
HibernateProdutoDao HibernateProdutoDao ProdutoDao @Component public class ProdutoDao { //construtor e

@Component public class ProdutoDao {

//construtor e métodos do Dao

}

ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017
ProdutoDao @Component public class ProdutoDao { //construtor e métodos do Dao } 24 de 46 27/04/2017

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped

ProdutoDao

ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped
ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped
ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped
ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped
ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped

@RequestScoped

ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped @PrototypeScoped
ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped @PrototypeScoped

@SessionScoped

ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped @PrototypeScoped @Component
ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped @PrototypeScoped @Component

@ApplicationScoped

ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped @PrototypeScoped @Component @RequestScoped public class
ProdutoDao @RequestScoped @SessionScoped @ApplicationScoped @PrototypeScoped @Component @RequestScoped public class

@PrototypeScoped

@SessionScoped @ApplicationScoped @PrototypeScoped @Component @RequestScoped public class ProdutoDao {
@SessionScoped @ApplicationScoped @PrototypeScoped @Component @RequestScoped public class ProdutoDao {
@SessionScoped @ApplicationScoped @PrototypeScoped @Component @RequestScoped public class ProdutoDao {

@Component @RequestScoped public class ProdutoDao {

//construtor e métodos do Dao

}

ContatoDao

@RequestScoped public class ProdutoDao { //construtor e métodos do Dao } ContatoDao 25 de 46 27/04/2017
@RequestScoped public class ProdutoDao { //construtor e métodos do Dao } ContatoDao 25 de 46 27/04/2017
@RequestScoped public class ProdutoDao { //construtor e métodos do Dao } ContatoDao 25 de 46 27/04/2017
@RequestScoped public class ProdutoDao { //construtor e métodos do Dao } ContatoDao 25 de 46 27/04/2017

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Spring ProdutoController ProdutoDao ProdutoDao @Component
Spring
Spring
Spring

Spring

Spring
Spring
Spring
Spring
Spring ProdutoController ProdutoDao ProdutoDao @Component
Spring ProdutoController ProdutoDao ProdutoDao @Component

ProdutoController

ProdutoDao

Spring ProdutoController ProdutoDao ProdutoDao @Component @RequestScoped @Component
Spring ProdutoController ProdutoDao ProdutoDao @Component @RequestScoped @Component
ProdutoDao
ProdutoDao
Spring ProdutoController ProdutoDao ProdutoDao @Component @RequestScoped @Component @RequestScoped public

@Component @RequestScoped

@Component @RequestScoped public class ProdutoDao {

//construtor e métodos do Dao

}

public class ProdutoDao { //construtor e métodos do Dao } ProdutoDao ProdutoController DAO @Resource 26 de

ProdutoDao

ProdutoDao { //construtor e métodos do Dao } ProdutoDao ProdutoController DAO @Resource 26 de 46 27/04/2017
ProdutoDao { //construtor e métodos do Dao } ProdutoDao ProdutoController DAO @Resource 26 de 46 27/04/2017

ProdutoController

ProdutoDao { //construtor e métodos do Dao } ProdutoDao ProdutoController DAO @Resource 26 de 46 27/04/2017

DAO

ProdutoDao { //construtor e métodos do Dao } ProdutoDao ProdutoController DAO @Resource 26 de 46 27/04/2017
ProdutoDao { //construtor e métodos do Dao } ProdutoDao ProdutoController DAO @Resource 26 de 46 27/04/2017
ProdutoDao { //construtor e métodos do Dao } ProdutoDao ProdutoController DAO @Resource 26 de 46 27/04/2017

@Resource

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

private ProdutoDao produtoDao;
private ProdutoDao produtoDao;

public ProdutoController(Result result, ProdutoDao produtoDao) { this.result = result; this.produtoDao = produtoDao;

}

public List<Produto> lista() { return produtoDao.lista();

}

public void adiciona(Produto produto) { produtoDao.adiciona(produto); //redirecionamento

}

public void remove(Produto produto) { produtoDao.remove(produto); //redirecionamento

}

}

} public void remove(Produto produto) { produtoDao.remove(produto); //redirecionamento } } 27 de 46 27/04/2017 14:22
} public void remove(Produto produto) { produtoDao.remove(produto); //redirecionamento } } 27 de 46 27/04/2017 14:22
} public void remove(Produto produto) { produtoDao.remove(produto); //redirecionamento } } 27 de 46 27/04/2017 14:22
} public void remove(Produto produto) { produtoDao.remove(produto); //redirecionamento } } 27 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
Usuario DAO
Usuario
DAO
Usuario DAO Usuario @Entity public class Usuario { @Id @GeneratedValue

Usuario

@Entity public class Usuario { @Id @GeneratedValue private Long id;

private String nome;

private String login;

private String senha;

//getters e setters

}

@Component @RequestScoped public class UsuarioDao { private Session session;

public class UsuarioDao { private Session session; public UsuarioDao() { this .session = new

public UsuarioDao() { this.session = new HibernateUtil().getSession();

}

public Usuario buscaUsuarioPorLoginESenha(Usuario usuario) { Query query = this.session. createQuery("from Usuario where " + "login = :pLogin and senha = :pSenha"); query.setParameter("pLogin", usuario.getLogin()); query.setParameter("pSenha", usuario.getSenha()); return (Usuario) query.uniqueResult();

}

}

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
@Component VRaptor @Component @SessionScoped public class

@ComponentVRaptor @Component @SessionScoped public class

@Component VRaptor @Component @SessionScoped public class
@Component VRaptor @Component @SessionScoped public class

VRaptor

@Component @SessionScoped public class UsuarioLogado { private Usuario usuarioLogado;

public void efetuaLogin(Usuario usuario) { this.usuarioLogado = usuario;

}

//getter pro usuarioLogado

}

.usuarioLogado = usuario; } //getter pro usuarioLogado } Controller LoginController UsuarioLogado UsuarioDao

Controller

= usuario; } //getter pro usuarioLogado } Controller LoginController UsuarioLogado UsuarioDao UsuarioLogado
= usuario; } //getter pro usuarioLogado } Controller LoginController UsuarioLogado UsuarioDao UsuarioLogado

LoginController

} //getter pro usuarioLogado } Controller LoginController UsuarioLogado UsuarioDao UsuarioLogado @Controller public
} //getter pro usuarioLogado } Controller LoginController UsuarioLogado UsuarioDao UsuarioLogado @Controller public

UsuarioLogado

pro usuarioLogado } Controller LoginController UsuarioLogado UsuarioDao UsuarioLogado @Controller public class

UsuarioDao

} Controller LoginController UsuarioLogado UsuarioDao UsuarioLogado @Controller public class LoginController {
} Controller LoginController UsuarioLogado UsuarioDao UsuarioLogado @Controller public class LoginController {

UsuarioLogado

LoginController UsuarioLogado UsuarioDao UsuarioLogado @Controller public class LoginController { private
LoginController UsuarioLogado UsuarioDao UsuarioLogado @Controller public class LoginController { private
LoginController UsuarioLogado UsuarioDao UsuarioLogado @Controller public class LoginController { private

@Controller public class LoginController { private UsuarioDao usuarioDao; private UsuarioLogado usuarioLogado; private Result result;

public LoginController(UsuarioDao usuarioDao, UsuarioLogado usuarioLogado, Result result){ this.usuarioDao = usuarioDao; this.usuarioLogado = usuarioLogado; this.result = result;

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

public void autentica(Usuario usuario) { Usuario

public void autentica(Usuario usuario) { Usuario autenticado = usuarioDao .buscaUsuarioPorLoginESenha(usuario); if(autenticado != null) { usuarioLogado.efetuaLogin(autenticado); result.redirectTo(ProdutoController.class).lista();

}

}

}

result.redirectTo(ProdutoController.class).lista(); } } } Controller @Controller public class LoginController {
result.redirectTo(ProdutoController.class).lista(); } } } Controller @Controller public class LoginController {
result.redirectTo(ProdutoController.class).lista(); } } } Controller @Controller public class LoginController {

Controller

} } } Controller @Controller public class LoginController { //atributos,
} } } Controller @Controller public class LoginController { //atributos,

@Controller public class LoginController { //atributos, construtor e métodos para efetuar o login

public void formulario() {

}

}

para efetuar o login public void formulario() { } } /login formulario.jsp WEB-INF/jsp <html>

/login

para efetuar o login public void formulario() { } } /login formulario.jsp WEB-INF/jsp <html> <body>

formulario.jsp

WEB-INF/jsp

<html> <body> <h2>Login no Controle de Produtos</h2> <form action="login/autentica"> Login: <input type="text" name="usuario.login" /><br /> Senha: <input type="password" name="usuario.senha"

/>

<input type="submit" value="Autenticar" /> </form> </body> </html>

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

public void autentica(Usuario usuario) { Usuario autenticado = dao.buscaUsuarioPorLoginESenha(usuario); if(autenticado != null) { usuarioLogado.efetuaLogin(autenticado); result.redirectTo(ProdutoController.class).lista(); return;

}

result.redirectTo(LoginController.class).formulario();

}

return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22
return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22

Interceptor

return ; } result.redirectTo(LoginController.class).formulario(); } Interceptor 31 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Interceptor
Interceptor
Interceptor Filter Interceptor br.com.caelum.vraptor.Interceptor

Filter

Interceptor Filter Interceptor br.com.caelum.vraptor.Interceptor @Intercepts
Interceptor Filter Interceptor br.com.caelum.vraptor.Interceptor @Intercepts

Interceptor

Interceptor Filter Interceptor br.com.caelum.vraptor.Interceptor @Intercepts intercept
Interceptor Filter Interceptor br.com.caelum.vraptor.Interceptor @Intercepts intercept

br.com.caelum.vraptor.Interceptor

Filter Interceptor br.com.caelum.vraptor.Interceptor @Intercepts intercept accepts intercept accepts boolean

@Intercepts

Interceptor br.com.caelum.vraptor.Interceptor @Intercepts intercept accepts intercept accepts boolean Interceptor
Interceptor br.com.caelum.vraptor.Interceptor @Intercepts intercept accepts intercept accepts boolean Interceptor

intercept accepts

@Intercepts intercept accepts intercept accepts boolean Interceptor UsuarioLogado

intercept@Intercepts intercept accepts accepts boolean Interceptor UsuarioLogado Interceptor

@Intercepts intercept accepts intercept accepts boolean Interceptor UsuarioLogado Interceptor
@Intercepts intercept accepts intercept accepts boolean Interceptor UsuarioLogado Interceptor
accepts boolean
accepts
boolean
@Intercepts intercept accepts intercept accepts boolean Interceptor UsuarioLogado Interceptor @Intercepts public

Interceptor

intercept accepts intercept accepts boolean Interceptor UsuarioLogado Interceptor @Intercepts public class
intercept accepts intercept accepts boolean Interceptor UsuarioLogado Interceptor @Intercepts public class
intercept accepts intercept accepts boolean Interceptor UsuarioLogado Interceptor @Intercepts public class

UsuarioLogado

accepts intercept accepts boolean Interceptor UsuarioLogado Interceptor @Intercepts public class LoginInterceptor
accepts intercept accepts boolean Interceptor UsuarioLogado Interceptor @Intercepts public class LoginInterceptor

Interceptor

accepts boolean Interceptor UsuarioLogado Interceptor @Intercepts public class LoginInterceptor implements

@Intercepts public class LoginInterceptor implements Interceptor {

private UsuarioLogado usuarioLogado; private Result result;

public LoginInterceptor(UsuarioLogado usuarioLogado, Result result) { this.usuarioLogado = usuarioLogado; this.result = result;

}

public void intercept(InterceptorStack stack,

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

if (usuarioLogado.getUsuario() != null ) {

if(usuarioLogado.getUsuario() != null) { stack.next(method, instance); } else {

result.redirectTo(LoginController.class).formulario();

}

}

public boolean accepts(ResourceMethod method) { ResourceClass resource = method.getResource();

return

!resource.getType().isAssignableFrom(LoginController.clas

s);

}

}

s); } } UsuarioLogado br.com.caelum.produtos.component @Component
s); } } UsuarioLogado br.com.caelum.produtos.component @Component
s); } } UsuarioLogado br.com.caelum.produtos.component @Component
s); } } UsuarioLogado br.com.caelum.produtos.component @Component
s); } } UsuarioLogado br.com.caelum.produtos.component @Component

UsuarioLogado

s); } } UsuarioLogado br.com.caelum.produtos.component @Component @SessionScoped

br.com.caelum.produtos.component

s); } } UsuarioLogado br.com.caelum.produtos.component @Component @SessionScoped public class UsuarioLogado {

@Component @SessionScoped public class UsuarioLogado { private Usuario usuarioLogado;

public void efetuaLogin(Usuario usuario) { this.usuarioLogado = usuario;

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

public Usuario getUsuario() { return this .usuarioLogado;

public Usuario getUsuario() { return this.usuarioLogado;

}

}

Usuario getUsuario() { return this .usuarioLogado; } } UsuarioDao @Component @RequestScoped @Component

UsuarioDao

getUsuario() { return this .usuarioLogado; } } UsuarioDao @Component @RequestScoped @Component @RequestScoped public
@Component @RequestScoped
@Component
@RequestScoped

@Component @RequestScoped public class UsuarioDao {

//metodos e construtor

}

public class UsuarioDao { //metodos e construtor } LoginController br.com.caelum.produtos.controller @Resource

LoginController

class UsuarioDao { //metodos e construtor } LoginController br.com.caelum.produtos.controller @Resource public class

br.com.caelum.produtos.controller

@Resource public class LoginController { private UsuarioDao usuarioDao; private UsuarioLogado usuarioLogado; private Result result;

public LoginController(UsuarioDao usuarioDao, UsuarioLogado usuarioLogado, Result result) { this.usuarioDao = usuarioDao; this.usuarioLogado = usuarioLogado; this.result = result;

}

public void autentica(Usuario usuario) { Usuario autenticado = usuarioDao .buscaUsuarioPorLoginESenha(usuario); if(autenticado != null) { usuarioLogado.efetuaLogin(autenticado); result.redirectTo(ProdutoController.class) .lista();

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

result.redirectTo(LoginController.class).formulario();

}

public void formulario() {

}

}

} public void formulario() { } } WEB-INF/jsp/login formulario.jsp <%@ taglib
} public void formulario() { } } WEB-INF/jsp/login formulario.jsp <%@ taglib

WEB-INF/jsp/login} public void formulario() { } } formulario.jsp <%@ taglib

} public void formulario() { } } WEB-INF/jsp/login formulario.jsp <%@ taglib

formulario.jsp

void formulario() { } } WEB-INF/jsp/login formulario.jsp <%@ taglib

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"

prefix="c" %> <html> <body> <h2>Login no Controle de Produtos</h2>

<form action="<c:url value="

/login/autentica"

/>">

Login: <input type="text" name="usuario.login" /><br /> Senha: <input type="password" name="usuario.senha" /> <input type="submit" value="Autenticar" /> </form> </body> </html>

/> </form> </body> </html> LoginInterceptor br.com.caelum.produtos.interceptor
/> </form> </body> </html> LoginInterceptor br.com.caelum.produtos.interceptor

LoginInterceptor

</body> </html> LoginInterceptor br.com.caelum.produtos.interceptor @Intercepts public class

br.com.caelum.produtos.interceptor

@Intercepts public class LoginInterceptor implements Interceptor {

private UsuarioLogado usuarioLogado; private Result result;

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

this .usuarioLogado = usuarioLogado; this .result = result;

this.usuarioLogado = usuarioLogado; this.result = result;

}

public void intercept(InterceptorStack stack, ResourceMethod method, Object instance) throws InterceptionException {

if(usuarioLogado.getUsuario() != null) { stack.next(method, instance); } else {

result.redirectTo(LoginController.class).formulario();

}

}

public boolean accepts(ResourceMethod method) { ResourceClass resource = method.getResource();

return

!resource.getType().isAssignableFrom(LoginController.cl

ass);

}

}

method.getResource(); return !resource.getType().isAssignableFrom(LoginController.cl ass); } } 36 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

insert into Usuario (nome, login, senha) values

insert into Usuario (nome, login, senha) values ('Administrador', 'admin', 'admin123');

senha) values ('Administrador', 'admin', 'admin123'); /produto/remove 37 de 46 27/04/2017 14:22
senha) values ('Administrador', 'admin', 'admin123'); /produto/remove 37 de 46 27/04/2017 14:22
senha) values ('Administrador', 'admin', 'admin123'); /produto/remove 37 de 46 27/04/2017 14:22
senha) values ('Administrador', 'admin', 'admin123'); /produto/remove 37 de 46 27/04/2017 14:22
senha) values ('Administrador', 'admin', 'admin123'); /produto/remove 37 de 46 27/04/2017 14:22

/produto/remove

senha) values ('Administrador', 'admin', 'admin123'); /produto/remove 37 de 46 27/04/2017 14:22
senha) values ('Administrador', 'admin', 'admin123'); /produto/remove 37 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22
Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 38 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22
- Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr 39 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib

WEB-INF/jsp/produto/lista.jsp

WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib

<head>

WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib
WEB-INF/jsp/produto/lista.jsp <head> <%@ taglib

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"

prefix="c" %> <html> <head> <script type="text/javascript" src="/controle-produtos/js/jquery.js"> </script> </head> <body> <!-- continuação da pagina -->

<body> <!-- continuação da pagina --> href # onclick removeProduto id <td> 40 de 46
<body> <!-- continuação da pagina --> href # onclick removeProduto id <td> 40 de 46
href # onclick
href
#
onclick
<!-- continuação da pagina --> href # onclick removeProduto id <td> 40 de 46 27/04/2017 14:22

removeProduto

<!-- continuação da pagina --> href # onclick removeProduto id <td> 40 de 46 27/04/2017 14:22

id

<!-- continuação da pagina --> href # onclick removeProduto id <td> 40 de 46 27/04/2017 14:22

<td>

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Remover
Remover

</a>

</td>

Remover </a> </td> removeProduto() id div id mensagem <script type=

removeProduto()

Remover </a> </td> removeProduto() id div id mensagem <script type=
Remover </a> </td> removeProduto() id div id mensagem <script type=

id

Remover </a> </td> removeProduto() id div id mensagem <script type=
div id mensagem
div
id
mensagem

<script type="text/javascript"> function removeProduto(id) {

$('#mensagem') .load('/controle-produtos/produto /remove?produto.id=' + id);

}

</script>

# id div
#
id
div
+ id); } </script> # id div <html> <head> <script type=

<html> <head> <script type="text/javascript" src="/controle-produtos/js/jquery.js"> </script> </head> <body>

<h1>Produtos</h1>

<div id="mensagem"></div> <!-- tabela para mostrar a lista dos produtos -->

></div> <!-- tabela para mostrar a lista dos produtos --> 41 de 46 27/04/2017 14:22
></div> <!-- tabela para mostrar a lista dos produtos --> 41 de 46 27/04/2017 14:22
></div> <!-- tabela para mostrar a lista dos produtos --> 41 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

.jsp
.jsp
remove ProdutoController
remove
ProdutoController
.jsp remove ProdutoController public void remove(Produto produto) {
.jsp remove ProdutoController public void remove(Produto produto) {

public void remove(Produto produto) { produtoDao.remove(produto);

}

remove(Produto produto) { produtoDao.remove(produto); } .jsp WEB-INF/jsp/produto remove.jsp Produto removido com

.jsp

remove(Produto produto) { produtoDao.remove(produto); } .jsp WEB-INF/jsp/produto remove.jsp Produto removido com sucesso
remove(Produto produto) { produtoDao.remove(produto); } .jsp WEB-INF/jsp/produto remove.jsp Produto removido com sucesso

WEB-INF/jsp/produto

{ produtoDao.remove(produto); } .jsp WEB-INF/jsp/produto remove.jsp Produto removido com sucesso tr id <c:forEach

remove.jsp

} .jsp WEB-INF/jsp/produto remove.jsp Produto removido com sucesso tr id <c:forEach var=

Produto removido com sucesso

WEB-INF/jsp/produto remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=

tr

remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=
remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=

id

remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=
remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=
remove.jsp Produto removido com sucesso tr id <c:forEach var= "produto" items=

<c:forEach var="produto" items="${produtoList}"> <tr id="produto${produto.id}"> <td>${produto.nome}</td> <td>${produto.preco}</td> <td>${produto.descricao}</td> <td> <fmt:formatDate pattern="dd/MM/yyyy" value="${produto.dataInicioVenda.time}" /> </td> <td><a href="#" onclick="return removeProduto(${produto.id})"> Remover

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

</c:forEach>
</c:forEach>
</c:forEach> $('#produto' + id).remove(); lista.jsp

$('#produto' + id).remove();

</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22
</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22

lista.jsp

</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22

WEB-INF/jsp/produto

</c:forEach> $('#produto' + id).remove(); lista.jsp WEB-INF/jsp/produto 43 de 46 27/04/2017 14:22

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"

prefix="c" %> <html> <head> <script type="text/javascript"

src="<c:url value="

/js/jquery.js"

/>">

</script> </head> <body> <!-- continuação da pagina -->

<body> <!-- continuação da pagina --> removeProduto <td> <a href= "#"

removeProduto

<td> <a href="#" onclick="return removeProduto(${produto.id})"> Remover </a> </td>

> Remover </a> </td> lista.jsp <!-- inicio da pagina e import do javascript
> Remover </a> </td> lista.jsp <!-- inicio da pagina e import do javascript

lista.jsp

<!-- inicio da pagina e import do javascript --> <body> <script type="text/javascript"> function removeProduto(id) { $('#mensagem') .load('<c:url value="/produto/remove"/>' + '?produto.id=' + id); $('#produto' + id).remove();

}

</script>

<!-- continuação da pagina --> </body>

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

VRaptor3 e produtividade na Web - Java para Desenvolvi https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

<h1>Produtos</h1>

<div id="mensagem"></div> <!-- tabela para mostrar a lista dos produtos -->

<!-- tabela para mostrar a lista dos produtos --> id <tr> <tr id= "produto${produto.id}"

id

<!-- tabela para mostrar a lista dos produtos --> id <tr> <tr id= "produto${produto.id}"

<tr>

para mostrar a lista dos produtos --> id <tr> <tr id= "produto${produto.id}" > remove

<tr id="produto${produto.id}">

remove ProdutoController
remove
ProdutoController

public void remove(Produto produto) { produtoDao.remove(produto);

}

remove(Produto produto) { produtoDao.remove(produto); } WEB-INF/jsp/produto remove.jsp Produto removido com sucesso

WEB-INF/jsp/produto

remove.jsp

produtoDao.remove(produto); } WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também
produtoDao.remove(produto); } WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também

Produto removido com sucesso

WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também em: 45 de 46 27/04/2017
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também em: 45 de 46 27/04/2017
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também em: 45 de 46 27/04/2017
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também em: 45 de 46 27/04/2017
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também em: 45 de 46 27/04/2017
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também em: 45 de 46 27/04/2017
WEB-INF/jsp/produto remove.jsp Produto removido com sucesso Você encontra a Caelum também em: 45 de 46 27/04/2017

Você encontra a Caelum também em:

Apêndice - VRaptor3 e produtividade na Web - Java para Desenvolvi

https://www.caelum.com.br/apostila-java-web/apendice-vraptor3-e-pr

Blog Caelum
Blog Caelum

Cursos

Online

Facebook

Newsletter

Casa do Código

Twitter