Boa Noite pessoal…
Tô com uma dificuldade em um sisteminha q estou desenvolvendo utilizando o struts 2.
A minha dificuldade é a seguinte:
- tenho uma tela de pesquisa, nela informo os filtros e solicito a busca. A mesma é realizada corretamente, mas não exibe na tela.
Segue o codigo da minha pagina de pesqusa
<body class="menu" style="margin: 0px; padding:0;">
<s:include value="menu.jsp"></s:include>
<s:div id="formulario" href="pesquisa!input.action" theme="ajax"></s:div>
<s:div id="listaDocumento" href="listaDocumentos.action" theme="ajax" listenTopics="listagemDocumentos"></s:div>
</body>
codigo do formulario
<s:form id="formPesquisa" action="documento!pesquisar.action" theme="ajax" method="post">
<s:textfield name="doctoNro" label="Número"></s:textfield>
<s:textfield name="doctoAssunto" label="Assunto"></s:textfield>
<s:select label="Visibilidade" name="visibilidade" list="listVisibilidade"></s:select>
<s:select label="Status" name="status" list="listStatus"></s:select>
<s:submit value="Pesquisar" notifyTopics="listagemDocumentos" ></s:submit>
</s:form>
codigo da pagina da tabela de resultados
<table width="750px" border="1" bordercolor="blue" cellpadding="2" cellspacing="2">
<tr >
<td width="30px">Número</td>
<td width="80px">Assunto</td>
<td width="20px">Visibilidade</td>
<td width="20px">Status</td>
</tr>
<s:iterator value="documentos">
<tr>
<td width="30px"><s:property value="doctoNumero"/></td>
<td width="80px"><s:property value="doctoAssunto"/></td>
<td width="20px"><s:property value="doctoVisibilidade"/></td>
<td width="20px"><s:property value="doctoStatus"/></td>
</tr>
</s:iterator>
</table>
segue o codigo da minha Action
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import br.com.normas.model.Documento;
import br.com.normas.test.TesteDAO;
import br.com.normas.util.SegurancaWeb;
public class DocumentoAction extends ActionSupport{
private static final long serialVersionUID = 1L;
public List<Documento> documentos;
private List<String> listVisibilidade;
private List<String> listStatus;
@SuppressWarnings("unused")
private String visibilidade;
@SuppressWarnings("unused")
private String status;
private List<Documento> doctos;
public List<Documento> getDocumentos() {
return documentos;
}
public void setDocumentos(List<Documento> documentos) {
this.documentos = documentos;
}
public String listaDocumentos() {
documentos = this.getDoctos();
return "sucess";
}
public List<Documento> getDoctos() {
return doctos;
}
public void setDoctos(List<Documento> doctos) {
this.doctos = doctos;
}
public String input(){
this.getListVisibilidade();
this.getListStatus();
return "resultado";
}
public List<String> getListStatus() {
listStatus = new ArrayList<String>();
listStatus.add("");
if(SegurancaWeb.hasPrivilege("COMUM")){
listStatus.add("VIGENTE");
}
if (SegurancaWeb.hasPrivilege("APROVADOR")){
listStatus.add("AG_APROVACAO");
listStatus.add("EM_ELABORACAO");
listStatus.add("OBSOLETO");
}
if (SegurancaWeb.hasPrivilege("CRIADOR")){
listStatus.add("AG_APROVACAO");
listStatus.add("EM_ELABORACAO");
}
return listStatus;
}
public void setListStatus(List<String> listStatus) {
this.listStatus = listStatus;
}
public String getStatus() {
return status = "";
}
public void setStatus(String status) {
this.status = status;
}
public List<String> getListVisibilidade() {
listVisibilidade = new ArrayList<String>();
listVisibilidade.add("");
listVisibilidade.add("CONFIDENCIAL");
listVisibilidade.add("PUBLICO");
return listVisibilidade;
}
public void setListVisibilidade(List<String> listVisibilidade) {
this.listVisibilidade = listVisibilidade;
}
public String getVisibilidade() {
return visibilidade = "PUBLICO";
}
public void setVisibilidade(String visibilidade) {
this.visibilidade = visibilidade;
}
public void pesquisar(){
this.setDoctos(TesteDAO.getListDocto());
System.out.println(documentos.size());
}
}
codigo do Struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Fundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="defaut" extends="struts-default">
<action name="login!*" method="{1}" class="br.com.normas.actions.LoginAction">
<result name="sucess">/pesquisa.jsp</result>
<result name="invalid">/login.jsp</result>
</action>
<action name="pesquisa!*" class="br.com.normas.actions.DocumentoAction" method="input">
<result name="resultado">/formPesqDocto.jsp</result>
<result></result>
</action>
<action name="listaDocumentos!*" class="br.com.normas.actions.DocumentoAction" method="listaDocumentos">
<result name="sucess">/tabelaDocto.jsp</result>
</action>
</package>
</struts>
Quando clico no botao pesquisar, ele realiza a busca normalmente. Quando o metodo pesquisar termina, é chamado o metodo listaDocumentos. Neste ponto a lista listDoctos já se encontra vazia.
Se colocar a chamada dao no metodo listaDocumentos, a tabela resultado é preenchida corretamente, porem ao montar a tela ele já reliza a busca.
Se alguem tiver vendo uma solução… posta ai…
valeu
Daniel