Checkbox 01
http://struts.apache.org/
Struts
É um framework de desenvolvimento da camada controladora, numa estrutura
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.
www.cotiinformatica.com.br 1
Apostila Struts2 Aula
Checkbox 01
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 (struts-config.XML) que une modelo, visualização e controlador.
Solicitações do cliente são enviadas para o controller em forma
de Actions (ações) definidas no arquivo de configuração. O controller, ao
receber uma solicitação, chama a classe Action correspondente a
Programação Orientada a Objeto, e esta interage com o código
do model específico. O código do model retorna um "ActionForward", 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.
www.cotiinformatica.com.br 2
Apostila Struts2 Aula
Checkbox 01
struts2-convention-plugin-2.3.15.1.jar
struts2-core-2.3.15.1.jar
struts2-jquery-plugin-3.6.1.jar
xwork-core-2.3.15.1.jar
Estrutura do projeto...
package entity;
public Produto() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
www.cotiinformatica.com.br 3
Apostila Struts2 Aula
Checkbox 01
return "Produto [idProduto=" + idProduto + ", nome="
+ nome + ", preco=" + preco + "]";
}
@Override
public boolean equals(Object c) {
return
this.idProduto.equals(((Produto)c).getIdProduto());
}
}
package action;
import java.security.IdentityScope;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
www.cotiinformatica.com.br 4
Apostila Struts2 Aula
Checkbox 01
import entity.Produto;
www.cotiinformatica.com.br 5
Apostila Struts2 Aula
Checkbox 01
public String init() {
getLista();
return SUCCESS;
}
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
www.cotiinformatica.com.br 6
Apostila Struts2 Aula
Checkbox 01
<action name="home"
class="action.ProdutoAction"
method="init">
<result name="success">/sistema.jsp</result>
</action>
<action name="produto.enviar"
class="action.ProdutoAction"
method="enviar">
<result name="success">/resposta.jsp</result>
<result name="error">/sistema.jsp</result>
</action>
</package>
</struts>
www.cotiinformatica.com.br 7
Apostila Struts2 Aula
Checkbox 01
Clicar em Project Faces -> Desmarcar Dynamic Web Module clicando
com o botão direito -> Unlock
www.cotiinformatica.com.br 8
Apostila Struts2 Aula
Checkbox 01
Marcar novamente -> Futher Configuration -> clicar em Generate
web.xml -> ok -> Apply -> OK
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Aula01-checkbox</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
www.cotiinformatica.com.br 9
Apostila Struts2 Aula
Checkbox 01
<filter-name>struts2</filter-name>
<filter-
class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndEx
ecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="bootstrap/css/bootstrap.css">
<script type="text/javascript" src="bootstrap/js/jquery-
1.10.2.js"></script>
<script type="text/javascript"
src="bootstrap/js/bootstrap.js"></script>
</head>
<body>
<div class="container">
<div class="well">
<h3>Aula 1 Struts 2</h3>
</div>
www.cotiinformatica.com.br 10
Apostila Struts2 Aula
Checkbox 01
Para rodar o projeto...
Clicar no projeto com o botão direito -> Run as -> Run on server
www.cotiinformatica.com.br 11
Apostila Struts2 Aula
Checkbox 01
sistema.jsp
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="bootstrap/css/bootstrap.css">
<script type="text/javascript" src="bootstrap/js/jquery-
1.10.2.js"></script>
<script type="text/javascript"
src="bootstrap/js/bootstrap.js"></script>
<title>Sistema Struts2</title>
</head>
<body>
<div class="well">
<h1>Struts 2 com CheckBox</h1>
</div>
</s:form>
</div>
</div>
</body>
www.cotiinformatica.com.br 12
Apostila Struts2 Aula
Checkbox 01
</html>
resposta.jsp
<%@ page language="java" contentType="text/html; charset=ISO-
8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-
8859-1">
<title>Resposta</title>
www.cotiinformatica.com.br 13
Apostila Struts2 Aula
Checkbox 01
<body>
<div class="container">
<div class="well">
<h1>Struts 2 com CheckBox</h1>
<a href="home.action" 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>
www.cotiinformatica.com.br 14