Carregar lista do banco em Combobox com o Struts

1 resposta
T

Estou construindo um CRUD. Ainda sou iniciante em desenvolvimento, então por enquanto só em freelas.

Bom, o que acontece é o seguinte, fiz uma página de cadastro de informações. O cadastro funciona legal, ou seja a entrada de dados com funciona bem.

Só que eu preciso carregar uma lista do relacionamento para cadastrar no banco. Exemplo que vou usar aqui é na tela de cadastro de paciente, preciso cadastrar por quem este paciente é tratado (médico).

Segue s classes, configs, e a página:

entidade.Medico

package entidade;  
  
import javax.persistence.*;  
import java.util.List;  
  
@Entity  
@Table(name="tblMedico")  
public class Medico {  
     
   @Id  
   @GeneratedValue(strategy=GenerationType.AUTO)  
   @Column  
   private Integer idMedico;  
     
   @Column(length=35)  
   private String nome;  
     
   @Column(length=25)  
   private String numCRM;  
     
   @Column(length=15)  
   private String telefone;  
     
   @OneToMany(mappedBy="medico")  
   private List<Paciente> pacientes;  
     
   @OneToMany(mappedBy="medico")  
   private List<Receita> receitas;  
     
   public Medico() {  
      super();  
   }  
  
   public Medico(String nome, String numCRM, String telefone,  
         List<Paciente> pacientes, List<Receita> receitas) {  
      this.nome = nome;  
      this.numCRM = numCRM;  
      this.telefone = telefone;  
      this.pacientes = pacientes;  
      this.receitas = receitas;  
   }  
  
   public Medico(Integer idMedico) {  
      this.idMedico = idMedico;  
   }  
  
   public List<Paciente> getPacientes() {  
      return pacientes;  
   }  
  
   public void setPacientes(List<Paciente> pacientes) {  
      this.pacientes = pacientes;  
   }  
  
   public List<Receita> getReceitas() {  
      return receitas;  
   }  
  
   public void setReceitas(List<Receita> receitas) {  
      this.receitas = receitas;  
   }  
  
   public Integer getIdMedico() {  
      return idMedico;  
   }  
  
   public void setIdMedico(Integer idMedico) {  
      this.idMedico = idMedico;  
   }  
  
   public String getNome() {  
      return nome;  
   }  
  
   public void setNome(String nome) {  
      this.nome = nome;  
   }  
  
   public String getNumCRM() {  
      return numCRM;  
   }  
  
   public void setNumCRM(String numCRM) {  
      this.numCRM = numCRM;  
   }  
  
   public String getTelefone() {  
      return telefone;  
   }  
  
   public void setTelefone(String telefone) {  
      this.telefone = telefone;  
   }  
  
}

entidade.Paciente

package entidade;  
  
import javax.persistence.*;  
import java.util.List;  
  
@Entity  
@Table(name="tblPaciente")  
public class Paciente {  
     
   @Id  
   @GeneratedValue(strategy=GenerationType.AUTO)  
   @Column  
   private Integer idPaciente;  
     
   @Column (unique=true)  
   private Integer CPF;  
     
   @Column (length=15)  
   private String RG;  
     
   @Column (length=25)  
   private String matricula;  
     
   @Column (length=35)  
   private String nome;  
     
   @Column (length=15)  
   private String telefone;  
     
   @Column (length=20)  
   private String email;  
     
   @ManyToOne  
   @JoinColumn(name="idMedico")  
   private Medico medico;  
     
   @OneToMany(mappedBy="paciente")  
   private List<Receita> receitas;  
  
   public Paciente() {  
      super();  
   }  
  
   public Paciente(Integer idPaciente, Integer cPF, String rG,  
         String matricula, String nome, String telefone, String email,  
         Medico medico, List<Receita> receitas) {  
      super();  
      this.idPaciente = idPaciente;  
      CPF = cPF;  
      RG = rG;  
      this.matricula = matricula;  
      this.nome = nome;  
      this.telefone = telefone;  
      this.email = email;  
      this.medico = medico;  
      this.receitas = receitas;  
   }  
  
     
   public Integer getIdPaciente() {  
      return idPaciente;  
   }  
     
  
   public void setIdPaciente(Integer idPaciente) {  
      this.idPaciente = idPaciente;  
   }  
     
  
   public Integer getCPF() {  
      return CPF;  
   }  
  
   public void setCPF(Integer cPF) {  
      CPF = cPF;  
   }  
  
   public String getRG() {  
      return RG;  
   }  
  
   public void setRG(String rG) {  
      RG = rG;  
   }  
  
   public String getMatricula() {  
      return matricula;  
   }  
  
   public void setMatricula(String matricula) {  
      this.matricula = matricula;  
   }  
  
   public String getNome() {  
      return nome;  
   }  
  
   public void setNome(String nome) {  
      this.nome = nome;  
   }  
  
   public String getTelefone() {  
      return telefone;  
   }  
  
   public void setTelefone(String telefone) {  
      this.telefone = telefone;  
   }  
  
   public String getEmail() {  
      return email;  
   }  
  
   public void setEmail(String email) {  
      this.email = email;  
   }  
  
   public Medico getMedico() {  
      return medico;  
   }  
   public void setMedico(Medico medico) {  
        
      this.medico = medico;  
   }  
  
  
   public List<Receita> getReceitas() {  
      return receitas;  
   }  
  
     
   public void setReceitas(List<Receita> receitas) {  
      this.receitas = receitas;  
   }  
  
     
     
}

controle.controlePaciente

package controle;  
  
import java.util.List;  
import javax.servlet.http.HttpServletRequest;  
import org.apache.struts2.ServletActionContext;  
import persistencia.*;  
  
import com.opensymphony.xwork2.ActionContext;  
import com.opensymphony.xwork2.ActionSupport;  
import entidade.*;  
  
public class controlePaciente extends ActionSupport {  
  
   private static final long serialVersionUID = -163992215564027574L;  
     
   private Paciente paciente;  
   private String msg;  
   private List<Paciente> listaPaciente;  
  
   public controlePaciente(){  
      paciente = new Paciente();  
   }  
     
   public Paciente getPaciente() {  
      return paciente;  
   }  
  
   public void setPaciente(Paciente paciente) {  
      this.paciente = paciente;  
   }  
  
   public String getMsg() {  
      return msg;  
   }  
  
   public void setMsg(String msg) {  
      this.msg = msg;  
   }  
     
   public List<Paciente> getListaPaciente() {  
      return listaPaciente;  
   }  
  
   public void setListaPaciente(List<Paciente> listaPaciente) {  
      this.listaPaciente = listaPaciente;  
   }  
  
   public String cadastrar(){  
        
      try{  
         if(paciente.getIdPaciente() != null && paciente.getIdPaciente() > 0)  
         {  
            new PacienteDao().update(paciente);  
         }  
         else  
         {  
            new PacienteDao().create(paciente);  
         }           
         paciente = new Paciente(); // -> Limpar os campos  
         setMsg("Gravado com sucesso!");  
         return SUCCESS;  
      }catch (Exception e) {  
         setMsg("Erro: " + e.getMessage());  
         return ERROR;  
      }        
   }  
     
   public String carregarConsulta(){  
      try{  
         listaPaciente = new PacienteDao().listarTodos(Paciente.class);  
         return SUCCESS;  
      }catch (Exception e) {  
         setMsg(e.getMessage());  
         return ERROR;  
      }  
   }  
     
   public String excluir(){  
      HttpServletRequest request = (HttpServletRequest)   
                     ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);  
      Integer id = new Integer(request.getParameter("id"));  
      try{  
         paciente = new Paciente();  
         paciente.setIdPaciente(id);  
         new PacienteDao().delete(paciente);  
         setMsg("Excluido com sucesso!");  
         carregarConsulta();  
         return SUCCESS;  
      }catch (Exception e) {  
         setMsg("Erro: " + e.getMessage());  
         carregarConsulta();  
         return ERROR;  
      }  
   }  
     
   public String editar(){  
      HttpServletRequest request = (HttpServletRequest)   
                        ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);  
      try{  
         Integer id = new Integer(request.getParameter("id"));  
         paciente = new PacienteDao().buscarPeloId(id, Paciente.class);  
         return SUCCESS;  
      }catch (Exception e) {  
         setMsg("Erro: " + e.getMessage());  
         return ERROR;  
      }        
   }  
  
}

struts.xml

<!DOCTYPE struts PUBLIC  
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
"http://struts.apache.org/dtds/struts-2.0.dtd">  
  
  
<struts>  
   <package name="controle" extends="struts-default">     
      <action name="laboratorio.cadastrar"  
            class="controle.controleLaboratorio"  
            method="cadastrar">  
            <result name="success">/cadastrarLaboratorio.jsp</result>              
      </action>        
      <action name="laboratorio.listar"  
            class="controle.controleLaboratorio"  
            method="carregarConsulta">  
            <result name="success">/listarLaboratorio.jsp</result>              
      </action>  
      <action name="laboratorio.excluir"  
            class="controle.controleLaboratorio"  
            method="excluir">  
            <result name="success">/listarLaboratorio.jsp</result>              
      </action>  
      <action name="laboratorio.editar"  
            class="controle.controleLaboratorio"  
            method="editar">  
            <result name="success">/cadastrarLaboratorio.jsp</result>              
      </action>  
  
        
  
      <action name="medicamento.cadastrar"  
            class="controle.controleMedicamento"  
            method="cadastrar">  
            <result name="success">/cadastrarMedicamento.jsp</result>              
      </action>        
      <action name="medicamento.listar"  
            class="controle.controleMedicamento"  
            method="carregarConsulta">  
            <result name="success">/listarMedicamento.jsp</result>              
      </action>  
      <action name="medicamento.excluir"  
            class="controle.controleMedicamento"  
            method="excluir">  
            <result name="success">/listarMedicamento.jsp</result>              
      </action>  
      <action name="medicamento.editar"  
            class="controle.controleMedicamento"  
            method="editar">  
            <result name="success">/cadastrarMedicamento.jsp</result>              
      </action>  
  
  
  
      <action name="medico.cadastrar"  
            class="controle.controleMedico"  
            method="cadastrar">  
            <result name="success">/cadastrarMedico.jsp</result>              
      </action>        
      <action name="medico.listar"  
            class="controle.controleMedico"  
            method="carregarConsulta">  
            <result name="success">/listarMedico.jsp</result>              
      </action>  
      <action name="medico.excluir"  
            class="controle.controleMedico"  
            method="excluir">  
            <result name="success">/listarMedico.jsp</result>              
      </action>  
      <action name="medico.editar"  
            class="controle.controleMedico"  
            method="editar">  
            <result name="success">/cadastrarMedico.jsp</result>              
      </action>  
  
  
  
      <action name="paciente.cadastrar"  
            class="controle.controlePaciente"  
            method="cadastrar">  
            <result name="success">/cadastrarPaciente.jsp</result>              
      </action>        
      <action name="paciente.listar"  
            class="controle.controlePaciente"  
            method="carregarConsulta">  
            <result name="success">/listarPaciente.jsp</result>              
      </action>  
      <action name="paciente.excluir"  
            class="controle.controlePaciente"  
            method="excluir">  
            <result name="success">/listarPaciente.jsp</result>              
      </action>  
      <action name="paciente.editar"  
            class="controle.controlePaciente"  
            method="editar">  
            <result name="success">/cadastrarPaciente.jsp</result>              
      </action>  
  
  
        
      <action name="receita.cadastrar"  
            class="controle.controleReceita"  
            method="cadastrar">  
            <result name="success">/cadastrarReceita.jsp</result>              
      </action>        
      <action name="receita.listar"  
            class="controle.controleReceita"  
            method="carregarConsulta">  
            <result name="success">/listarReceita.jsp</result>              
      </action>  
      <action name="receita.excluir"  
            class="controle.controleReceita"  
            method="excluir">  
            <result name="success">/listarReceita.jsp</result>              
      </action>  
      <action name="receita.editar"  
            class="controle.controleReceita"  
            method="editar">  
            <result name="success">/cadastrarReceita.jsp</result>              
      </action>  
   </package>  
</struts>
Tela do cadastro de paciente:
<%@ taglib uri="/struts-tags" prefix="s"%>  
<h3>Cadastrar Paciente</h3>  
<ul class="menuinterno">  
   <li><s:a href="cadastrarPaciente.jsp">Cadastrar</s:a></li>  
   <li><s:a href="listarPaciente.jsp">Pesquisar</s:a></li>  
   <li><s:a href="cadastrarPaciente.jsp">Alterar</s:a></li>  
   <li>  
</ul>  
<hr />  
<s:form cssClass="form" action="paciente.cadastrar">  
      <s:hidden name="paciente.idPaciente"></s:hidden>  
      <s:textfield label="Nome" name="paciente.nome"></s:textfield>  
      <s:textfield label="CPF" name="paciente.cpf"></s:textfield>  
      <s:textfield label="Matrícula" name="paciente.matricula"></s:textfield>  
      <s:textfield label="RG" name="paciente.rg"></s:textfield>  
      <s:textfield label="Telefone" name="paciente.telefone"></s:textfield>  
      <s:textfield label="E-mail" name="paciente.email"></s:textfield>  
      <s:combobox list="paciente.pacientes"></s:combobox>  
     
   <s:submit value="Gravar Paciente"></s:submit>  
</s:form>  
<span class="validator">${msg}</span>

1 Resposta

T

ninguem?

Criado 21 de agosto de 2011
Ultima resposta 22 de ago. de 2011
Respostas 1
Participantes 1