Olá galera,
Estou com um problema e preciso usar Struts 2…
Preciso (através de Ajax), cadastrar uma pessoa em qualquer um dos formulários e atualializar sua respectiva lista na página. Alguém pode me ajudar?
PS: Também preciso utilizar a mesma Action. Que já está toda mapeada e configurada, o problema é apenas a inserção (pegando os dados do formulário) e a atualização (ajax) da lista.
Action “pessoasAction”:
@Results({
@Result(name = PessoasAction.SUCCESS, value = "pessoasAction.init", type = TilesResult.class)
})
@ResultInputs({ @ResultInput(name = PessoasAction.SUCCESS, method = "init") })
@ParentPackage("struts-app-view")
public Class PessoasAction() {
private static final long serialVersionUID = 1L;
protected static final String SUCCESS = "SUCCESS";
private HttpSession session;
PessoaMagra pessoaMagra;
PessoaGorda pessoaGorda;
List<PessoaMagra> listaPessoasMagras;
List<PessoaMagra> listaPessoasGordas;
public String init() {
carregarListaPessoasMagras();
return SUCCESS;
}
private void carregarListaPessoasMagras() {
session = getRequest().getSession();
if (session.getAttribute("listaPessoasMagras") == null) {
listaPessoasMagras = new PessoaMagraService().findAll();
session.setAttribute("listaPessoasMagras", listaPessoasMagras);
} else {
listaPessoasMagras = (List<PessoaMagra>) session.getAttribute("listaPessoasMagras");
}
}
private void carregarListaPessoasGordas() {
session = getRequest().getSession();
if (session.getAttribute("listaPessoasGordas") == null) {
listaPessoasGordas = new PessoaGordaService().findAll();
session.setAttribute("listaPessoasGordas", listaPessoasGordas);
} else {
listaPessoasGordas = (List<PessoaGorda>) session.getAttribute("listaPessoasGordas");
}
}
public String removerPessoaMagra() {
session = getRequest().getSession();
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get( ServletActionContext.HTTP_REQUEST);
String idString = request.getParameter("id");
PessoaMagra pessoaMagra = new PessoaMagraService().findById(Long.parseLong(idString));
listaPessoasMagras = (List<PessoaMagra>) session.getAttribute("listaPessoasMagras");
listaPessoasMagras.remove(pessoaMagra);
session.setAttribute("listaPessoasMagras", listaPessoasMagras);
return SUCCESS;
}
public String removerPessoaGorda() {
session = getRequest().getSession();
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get( ServletActionContext.HTTP_REQUEST);
String idString = request.getParameter("id");
PessoaMagra pessoaGorda = new PessoaMGordaService().findById(Long.parseLong(idString));
listaPessoasGordas = (List<PessoaGordas>) session.getAttribute("listaPessoasGordas");
listaPessoasGordas.remove(pessoaGorda);
session.setAttribute("listaPessoasGordas", listaPessoasGordas);
return SUCCESS;
}
public String inserirPessoaMagra() {
//AQUI ESTÁ O PROBLEMA
}
public String inserirPessoaGorda() {
//AQUI ESTÁ O PROBLEMA
}
}
Página:
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body>
<div id="divPessoaMagra">
<s:form id="formPessoaMagra">
<s:textField name="pessoaMagra.nome">
<s:textField name="pessoaMagra.idade">
<s:submit value="Cadastrar">
</s:form>
<table id="listapessoasMagras" class="grid">
<thead>
<tr>
<th><label>Nome</label></th>
<th><label>Idade</label></th>
<th></th>
</tr>
</thead>
<tbody>
<s:iterator value="listaPessoasMagras" var="pessoaMagra">
<tr id="${id}">
<td><s:property value="nome" /></td>
<td><s:property value="idade" /></td>
<td><a href='#' onclick="excluirPessoaMagra('${id}');">Excluir</a></td>
</tr>
</s:iterator>
</tbody>
</table>
</div>
<div id="divPessoaGorda">
<s:form id="formPessoaGorda">
<s:textField name="pessoaGorda.nome">
<s:textField name="pessoaGorda.idade">
<s:submit value="Cadastrar">
</s:form>
<table id="listapessoasGordas" class="grid">
<thead>
<tr>
<th><label>Nome</label></th>
<th><label>Idade</label></th>
<th></th>
</tr>
</thead>
<tbody>
<s:iterator value="listaPessoasGordas" var="pessoaGorda">
<tr id="${id}">
<td><s:property value="nome" /></td>
<td><s:property value="idade" /></td>
<td><a href='#' onclick="excluirPessoaGorda('${id}');">Excluir</a></td>
</tr>
</s:iterator>
</tbody>
</table>
</div>
<script>
function excluirPessoaGorda(id) {
if (confirm("Tem certeza que deseja excluir esta pessoa?")) {
var acao = '/teste/pessoasAction!removerPessoaGorda.action';
var tr = jQuery("#" + id);
var dados = 'id=' + id;
jQuery.ajax({
cache : false,
type : 'GET',
cache : false,
url : acao,
data : dados,
success : function(data) {
tr.remove();
},
error : function() {
alert('Não foi possível excluir a pessoa.');
}
});
}
}
function excluirPessoaMagra(id) {
if (confirm("Tem certeza que deseja excluir esta pessoa?")) {
var acao = '/teste/pessoasAction!removerPessoaMagra.action';
var tr = jQuery("#" + id);
var dados = 'id=' + id;
jQuery.ajax({
cache : false,
type : 'GET',
cache : false,
url : acao,
data : dados,
success : function(data) {
tr.remove();
},
error : function() {
alert('Não foi possível excluir a pessoa.');
}
});
}
}
</script>
</body>
</html>
Desde já agradeço!