14. Actions
Serão os nossos Controllers
1. Fornecem dados para serem exibidos na view
2. Recebem dados das requisições
3. Executam as ações solicitadas pelo usuário
15. Como criar uma Action?!
Uma action é apenas uma classe Java que herda da classe
ActionSupport
16. Nossa primeira Action
controle.actions.CadastrarUsuarioAction.java
package controle.actions;
import com.opensymphony.xwork2.ActionSupport;
public class CadastrarUsuarioAction extends ActionSupport {
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
return super.execute();
}
}
17. Agora é necessário definir a nossa
Action no arquivo Struts.xml
<action name="CadastrarUsuario” class="controle.actions.CadastrarUsuarioAction">
</action>
Para definir uma action precisamos irformar
o seu nome e a classe…
18. Métodos
Sempre que uma Action for acionada, por
padrão, o método execute() será disparado.
Ele tem a seguinte estrutura:
public String execute() throws Exception {
return super.execute();
}
19. Action Results
Método execute irá definir qual a próxima página
deverá ser chamada.
Para isso precisamos mapear os resultados possíveis
no Struts.xml
<action name="CadastrarUsuario" class="controle.actions.CadastrarUsuarioAction">
<result name="success">/visao/Login.jsp</result>
</action>
20. Conjunto Padrão de Resultados
• SUCCESS
• NONE
• ERROR
• INPUT
• LOGIN
Exemplo:
public String execute() throws Exception {
return CadastroUsuarioAction.SUCCESS;
}
21. Properties
Também podemos definir propriedades para serem
acessadas nas views.
Exemplo:
public class TesteAction extends ActionSupport {
private String nome;
public String execute() throws Exception {
return CadastroUsuarioAction.SUCCESS;
}
public String getNome () {
return this.nome;
}
}
22. Acessando as propriedades
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page language="java" contentType="text/html; charset=US-ASCII"
pageEncoding=”UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Insert title here</title>
</head>
<body>
Nome: <s:property value=”nome" />
</body>
</html>