Pessoal, boa tarde.
Estou com um problema em uma tela do seu sistema de internações hospitalares. Tenho uma página JSP responsavel pelo cadastro de procedimentos médicos, esse cadastro possui um relacionamento com uma tabela de tipos de procedimentos. Quando eu carrego a tela pela primeira vez consigo selecionar qualquer tipo para o procedimento, mais se eu pesquiso e carrego um procedimento existente no banco só consigo visualizar o tipo que foi cadastrado, impossibilitando assim a alteração. Abaixo esta minha página procedimento.jsp. Gostaria de carregar as opções existentes no banco após a pesquisa.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!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=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="modelos/estilo.css">
<script type="text/javascript" src="modelos/validacao.js"></script>
<c:if test="${procedimento == null}">
<script language="javascript">window.location='procedimento.do'</script>
</c:if>
<title>SINTHOS - Sistema de Internações Hospitalares</title>
</head>
<body>
<div class="principal">
<div class="cabecalho"></div>
<div class="aba">
<a href="internacao.jsp"><img src="imagens/aba_cadastro1.png" border="0"></a><img src="imagens/aba_cadastro2.png"><a href="relatorios.jsp"><img src="imagens/aba_cadastro3.png" border="0"></a>
</div>
<div class="conteudo">
<center>
<form name="formProcedimento" id="formProcedimento" method="post" action="procedimento.do">
<table>
<tr>
<td><font color="red">* </font>Código: </td>
<td><input type="text" lang="1" name="codigo" id="codigo" class="codigo" maxlength="6" onkeypress="return campoNumerico(event)" value="${procedimento.codigoProcedimento }"/></td>
</tr>
<tr>
<td><font color="red">* </font>Descrição: </td>
<td><textarea lang="1" name="descricao" id="descricao" class="textArea" onkeydown="tamanhoMaximo(this,50)" onchange="this.value=this.value.toUpperCase();">${procedimento.descricao }</textarea></td>
</tr>
<tr>
<td><font color="red">* </font>Valor: </td>
<td><input type="text" lang="1" name="valor" id="valor" maxlength="9" class="codigo" onkeypress="return campoNumerico(event)" value="${procedimento.valor }"/></td>
</tr>
<tr>
<td><font color="red">* </font>Tipo de Procedimento: </td>
<td>
<select name="tipoProcedimento" id="tipoProcedimento">
<c:forEach items="${listaTipoProcedimento}" var="tipoProcedimento">
<option value="${tipoProcedimento.codigoTipoProcedimento }">${tipoProcedimento.descricao }</option>
</c:forEach>
<c:if test="${procedimento != null}">
<option value="${procedimento.tipoProcedimento.codigoTipoProcedimento }">${procedimento.tipoProcedimento.descricao }</option>
</c:if>
</select>
</td>
</tr>
<tr>
<td></td>
<td><font color="red">*</font> Campos Obrigatórios.</td>
</tr>
</table>
<br/>
<!--<img src="imagens/botaoAnterior.png"> <input type="text" name="navegar" id="navegar" size="4" disabled="disabled"/> <img src="imagens/botaoProximo.png"/>!-->
<br/>
<table>
<tr>
<td>
<input type="submit" class="botao" name="acao" value="Salvar" onclick="return validaCampoObrigatorio(formProcedimento)"/>
<input type="submit" class="botao" name="acao" value="Excluir"/>
<input type="submit" class="botao" name="acao" value="Pesquisar"/>
<input type="submit" class="botao" name="acao" value="Limpar"/>
</td>
</tr>
</table>
</form>
</center>
</div>
<br/><br/>
<a href="cadastros.jsp"><img src="imagens/botaoVoltar.png" border="0"/></a> <img align="right" src="imagens/procedimento.png"/>
<div class="rodape">Todos os Direitos Reservados - SINTHOS</div>
</div>
</body>
</html>
Tentei copiar o laço de cima para dentro da condição mais não funcionou, alguem pode me dar uma dica de como solucionar esse problema. Tambem estou postando o ProcedimentoCTR(Servlet) que controla a tela.
package sinthos.ctr;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import sinthos.bean.Procedimento;
import sinthos.bean.TipoProcedimento;
import sinthos.dao.ProcedimentoDAO;
import sinthos.dao.TipoProcedimentoDAO;
public class ProcedimentoCTR extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
public ProcedimentoCTR() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Define o tipo de resposta
response.setContentType("text/html; charset=iso-8859-1");
//Cria os objetos e variaveis
TipoProcedimentoDAO daoTipoProcedimento = new TipoProcedimentoDAO();
Procedimento procedimento = new Procedimento();
ProcedimentoDAO daoProcedimento = new ProcedimentoDAO();
//Envia o proximo código para tela
procedimento.setCodigoProcedimento(daoProcedimento.getProcedimentoMaxCodigo());
request.setAttribute("procedimento", procedimento);
//Cria lista de tipos de procedimento
List<TipoProcedimento> listaTipoProcedimento = daoTipoProcedimento.getTodosTipoProcedimento();
request.setAttribute("listaTipoProcedimento", listaTipoProcedimento);
//Redireciona para tela
request.getRequestDispatcher("procedimento.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Define o tipo de resposta
response.setContentType("text/html; charset=iso-8859-1");
//Cria os objetos e variaveis
Procedimento procedimento = new Procedimento();
ProcedimentoDAO daoProcedimento = new ProcedimentoDAO();
String acao = request.getParameter("acao");
//Recupera da tela
procedimento.setCodigoProcedimento(Integer.parseInt(request.getParameter("codigo")));
procedimento.setDescricao(request.getParameter("descricao"));
procedimento.setValor(Double.parseDouble(request.getParameter("valor")));
procedimento.setCodigoTipoProcedimento(Integer.parseInt(request.getParameter("tipoProcedimento")));
//Ação dos botões da tela
if(acao.equals("Salvar")){
procedimento = daoProcedimento.salvarProcedimento(procedimento);
if(procedimento == null){
request.getRequestDispatcher("mensagemErro.jsp").forward(request, response);
}else{
request.getRequestDispatcher("mensagemOk.jsp").forward(request, response);
}
}else if(acao.equals("Excluir")){
daoProcedimento.excluirProcedimento(procedimento.getCodigoProcedimento());
request.getRequestDispatcher("mensagemOk.jsp").forward(request, response);
}else if(acao.equals("Pesquisar")){
if(procedimento.getDescricao().equals("")){
procedimento = daoProcedimento.getProcedimentoPorCodigo(procedimento.getCodigoProcedimento());
request.setAttribute("procedimento", procedimento);
request.getRequestDispatcher("procedimento.jsp").forward(request, response);
}else{
procedimento = daoProcedimento.getProcedimentoPorDescricao(procedimento.getDescricao());
request.setAttribute("procedimento", procedimento);
request.getRequestDispatcher("procedimento.jsp").forward(request, response);
}
}else{
request.getRequestDispatcher("procedimento.jsp").forward(request, response);
}
}
}
Desde de já, muito obrigado.